@subwallet/extension-base 1.1.59-0 → 1.1.60-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background/KoniTypes.d.ts +18 -1
- package/cjs/constants/staking.js +2 -1
- package/cjs/constants/storage.js +4 -2
- package/cjs/koni/api/coingecko.js +58 -15
- package/cjs/koni/api/nft/config.js +26 -22
- package/cjs/koni/background/handlers/Extension.js +130 -122
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +7 -1
- package/cjs/services/chain-service/index.js +6 -1
- package/cjs/services/chain-service/utils/index.js +34 -14
- package/cjs/services/price-service/coingecko.js +54 -35
- package/cjs/services/price-service/index.js +94 -12
- package/cjs/services/setting-service/constants.js +4 -1
- package/cjs/services/storage-service/DatabaseService.js +2 -3
- package/cjs/utils/number.js +84 -1
- package/cjs/utils/staticData/index.js +6 -1
- package/constants/staking.js +2 -1
- package/constants/storage.d.ts +1 -0
- package/constants/storage.js +2 -1
- package/koni/api/coingecko.d.ts +2 -2
- package/koni/api/coingecko.js +58 -15
- package/koni/api/nft/config.js +27 -21
- package/koni/background/handlers/Extension.d.ts +1 -0
- package/koni/background/handlers/Extension.js +7 -0
- package/package.json +7 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +8 -2
- package/services/chain-service/index.js +6 -1
- package/services/chain-service/utils/index.d.ts +13 -0
- package/services/chain-service/utils/index.js +32 -14
- package/services/price-service/coingecko.d.ts +3 -2
- package/services/price-service/coingecko.js +50 -32
- package/services/price-service/index.d.ts +9 -1
- package/services/price-service/index.js +95 -14
- package/services/setting-service/constants.d.ts +1 -0
- package/services/setting-service/constants.js +2 -0
- package/services/storage-service/DatabaseService.d.ts +1 -1
- package/services/storage-service/DatabaseService.js +2 -3
- package/utils/number.d.ts +1 -0
- package/utils/number.js +82 -0
- package/utils/staticData/currencySymbol.json +11 -0
- package/utils/staticData/index.d.ts +3 -0
- package/utils/staticData/index.js +4 -0
|
@@ -9,12 +9,14 @@ export const DEFAULT_AUTO_LOCK_TIME = 15;
|
|
|
9
9
|
export const DEFAULT_UNLOCK_TYPE = TARGET_ENV === 'extension' ? WalletUnlockType.ALWAYS_REQUIRED : WalletUnlockType.WHEN_NEEDED;
|
|
10
10
|
export const DEFAULT_CHAIN_PATROL_ENABLE = false;
|
|
11
11
|
export const DEFAULT_LANGUAGE = 'en';
|
|
12
|
+
export const DEFAULT_CURRENCY = 'usd';
|
|
12
13
|
export const DEFAULT_SHOW_ZERO_BALANCE = true;
|
|
13
14
|
export const DEFAULT_SHOW_BALANCE = false;
|
|
14
15
|
export const DEFAULT_ALL_LOGO = '';
|
|
15
16
|
export const DEFAULT_CAMERA_ENABLE = false;
|
|
16
17
|
export const DEFAULT_SETTING = {
|
|
17
18
|
language: DEFAULT_LANGUAGE,
|
|
19
|
+
currency: DEFAULT_CURRENCY,
|
|
18
20
|
browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
|
|
19
21
|
isShowZeroBalance: DEFAULT_SHOW_ZERO_BALANCE,
|
|
20
22
|
isShowBalance: DEFAULT_SHOW_BALANCE,
|
|
@@ -42,7 +42,7 @@ export default class DatabaseService {
|
|
|
42
42
|
private yieldInfoSubscription;
|
|
43
43
|
constructor(eventService: EventService);
|
|
44
44
|
updatePriceStore(priceData: PriceJson): Promise<void>;
|
|
45
|
-
getPriceStore(): Promise<PriceJson | undefined>;
|
|
45
|
+
getPriceStore(keyData?: string): Promise<PriceJson | undefined>;
|
|
46
46
|
getStoredBalance(): Promise<IBalance[]>;
|
|
47
47
|
updateBalanceStore(item: BalanceItem): Promise<unknown>;
|
|
48
48
|
updateBulkBalanceStore(items: BalanceItem[]): Promise<unknown>;
|
|
@@ -52,10 +52,9 @@ export default class DatabaseService {
|
|
|
52
52
|
async updatePriceStore(priceData) {
|
|
53
53
|
await this.stores.price.table.put(priceData);
|
|
54
54
|
}
|
|
55
|
-
async getPriceStore() {
|
|
55
|
+
async getPriceStore(keyData) {
|
|
56
56
|
try {
|
|
57
|
-
|
|
58
|
-
return rs;
|
|
57
|
+
return await this.stores.price.table.get(keyData || 'USD');
|
|
59
58
|
} catch (e) {
|
|
60
59
|
this.logger.error(e);
|
|
61
60
|
return undefined;
|
package/utils/number.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface NumberFormatter {
|
|
|
7
7
|
(input: string, metadata?: Record<string, number>): string;
|
|
8
8
|
}
|
|
9
9
|
export declare const balanceFormatter: NumberFormatter;
|
|
10
|
+
export declare const balanceNoPrefixFormater: NumberFormatter;
|
|
10
11
|
export declare const PREDEFINED_FORMATTER: Record<string, NumberFormatter>;
|
|
11
12
|
export declare const toBNString: (input: string | number | BigNumber, decimal: number) => string;
|
|
12
13
|
export declare const formatNumber: (input: string | number | BigNumber, decimal: number, formatter?: NumberFormatter, metadata?: Record<string, number>) => string;
|
package/utils/number.js
CHANGED
|
@@ -90,6 +90,88 @@ export const balanceFormatter = (input, metadata) => {
|
|
|
90
90
|
}
|
|
91
91
|
return int;
|
|
92
92
|
};
|
|
93
|
+
const intToLocaleString = (str, separator) => str.replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
94
|
+
const getNumberSeparators = () => {
|
|
95
|
+
// default
|
|
96
|
+
const res = {
|
|
97
|
+
decimal: '.',
|
|
98
|
+
thousand: ''
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
// convert a number formatted according to locale
|
|
102
|
+
const str = parseFloat('1234.56').toLocaleString();
|
|
103
|
+
|
|
104
|
+
// if the resulting number does not contain previous number
|
|
105
|
+
// (i.e. in some Arabic formats), return defaults
|
|
106
|
+
if (!str.match('1')) {
|
|
107
|
+
return res;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// get decimal and thousand separators
|
|
111
|
+
res.decimal = str.replace(/.*4(.*)5.*/, '$1');
|
|
112
|
+
res.thousand = str.replace(/.*1(.*)2.*/, '$1');
|
|
113
|
+
|
|
114
|
+
// return results
|
|
115
|
+
return res;
|
|
116
|
+
};
|
|
117
|
+
export const balanceNoPrefixFormater = (input, metadata) => {
|
|
118
|
+
const [int, decimal] = input.split('.');
|
|
119
|
+
const {
|
|
120
|
+
thousand: thousandSeparator
|
|
121
|
+
} = getNumberSeparators();
|
|
122
|
+
const absGteOne = new BigNumber(input).abs().gte(1);
|
|
123
|
+
const minNumberFormat = (metadata === null || metadata === void 0 ? void 0 : metadata.minNumberFormat) || 2;
|
|
124
|
+
const maxNumberFormat = (metadata === null || metadata === void 0 ? void 0 : metadata.maxNumberFormat) || 6;
|
|
125
|
+
let _decimal = '';
|
|
126
|
+
if (absGteOne) {
|
|
127
|
+
// Get only minNumberFormat number at decimal
|
|
128
|
+
if (decimal.length <= minNumberFormat) {
|
|
129
|
+
_decimal = decimal;
|
|
130
|
+
} else {
|
|
131
|
+
_decimal = decimal.slice(0, minNumberFormat);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Clear zero number for decimal
|
|
135
|
+
_decimal = clearZero(_decimal);
|
|
136
|
+
} else {
|
|
137
|
+
// Index of cursor
|
|
138
|
+
let index = 0;
|
|
139
|
+
|
|
140
|
+
// Count of not zero number in decimal
|
|
141
|
+
let current = 0;
|
|
142
|
+
|
|
143
|
+
// Find a not zero number in decimal
|
|
144
|
+
let metNotZero = false;
|
|
145
|
+
|
|
146
|
+
// Get at least minNumberFormat number not 0 from index 0
|
|
147
|
+
// If count of 0 number at prefix greater or equal maxNumberFormat should stop and return 0
|
|
148
|
+
|
|
149
|
+
// current === minNumberFormat: get enough number
|
|
150
|
+
// index === decimal.length: end of decimal
|
|
151
|
+
// index === maxNumberFormat: reach limit of 0 number at prefix
|
|
152
|
+
if (decimal) {
|
|
153
|
+
while (current < minNumberFormat && index < decimal.length && (index < maxNumberFormat || metNotZero)) {
|
|
154
|
+
const _char = decimal[index];
|
|
155
|
+
_decimal += _char;
|
|
156
|
+
index++;
|
|
157
|
+
if (_char !== '0') {
|
|
158
|
+
metNotZero = true;
|
|
159
|
+
}
|
|
160
|
+
if (metNotZero) {
|
|
161
|
+
current++;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Clear zero number for decimal
|
|
166
|
+
_decimal = clearZero(_decimal);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const int_ = intToLocaleString(int, thousandSeparator);
|
|
170
|
+
if (_decimal) {
|
|
171
|
+
return `${int_}.${_decimal}`;
|
|
172
|
+
}
|
|
173
|
+
return int_;
|
|
174
|
+
};
|
|
93
175
|
export const PREDEFINED_FORMATTER = {
|
|
94
176
|
balance: balanceFormatter
|
|
95
177
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"USD": {"label": "United States Dollar", "symbol": "USD", "isPrefix": false},
|
|
3
|
+
"BRL": {"label": "Brazilian Real", "symbol": "BRL", "isPrefix": false},
|
|
4
|
+
"CNY": {"label": "Chinese Yuan", "symbol": "CNY", "isPrefix": false},
|
|
5
|
+
"EUR": {"label": "Euro", "symbol": "EUR", "isPrefix": false},
|
|
6
|
+
"GBP": {"label": "British Pound Sterling", "symbol": "GBP", "isPrefix": false},
|
|
7
|
+
"HKD": {"label": "Hong Kong Dollar", "symbol": "HKD", "isPrefix": false},
|
|
8
|
+
"JPY": {"label": "Japanese Yen", "symbol": "JPY", "isPrefix": false},
|
|
9
|
+
"RUB": {"label": "Russian Ruble", "symbol": "RUB", "isPrefix": false},
|
|
10
|
+
"VND": {"label": "Vietnamese Dong", "symbol": "VND", "isPrefix": false}
|
|
11
|
+
}
|
|
@@ -3,9 +3,11 @@ export declare const buyTokenConfigs: Record<string, unknown>[];
|
|
|
3
3
|
export declare const crowdloanFunds: Record<string, unknown>[];
|
|
4
4
|
export declare const marketingCampaigns: Record<string, unknown>;
|
|
5
5
|
export declare const termAndCondition: Record<string, unknown>;
|
|
6
|
+
export declare const currencySymbol: Record<string, unknown>;
|
|
6
7
|
export declare enum StaticKey {
|
|
7
8
|
BUY_SERVICE_INFOS = "buy-service-infos",
|
|
8
9
|
CHAINS = "chains",
|
|
10
|
+
CURRENCY_SYMBOL = "currency_symbols",
|
|
9
11
|
MARKETING_CAMPAINGS = "marketing-campaigns",
|
|
10
12
|
CROWDLOAN_FUNDS = "crowdloan-funds",
|
|
11
13
|
TERM_AND_CONDITION = "term-and-condition",
|
|
@@ -13,6 +15,7 @@ export declare enum StaticKey {
|
|
|
13
15
|
}
|
|
14
16
|
export declare const staticData: {
|
|
15
17
|
chains: import("@subwallet/chain-list/types")._ChainInfo[];
|
|
18
|
+
currency_symbols: Record<string, unknown>;
|
|
16
19
|
"buy-service-infos": Record<string, unknown>[];
|
|
17
20
|
"crowdloan-funds": Record<string, unknown>[];
|
|
18
21
|
"marketing-campaigns": Record<string, unknown>;
|
|
@@ -14,10 +14,13 @@ export const crowdloanFunds = require("./crowdloanFunds.json");
|
|
|
14
14
|
export const marketingCampaigns = require("./marketingCampaigns.json");
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-assignment
|
|
16
16
|
export const termAndCondition = require("./termAndCondition.json");
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-assignment
|
|
18
|
+
export const currencySymbol = require("./currencySymbol.json");
|
|
17
19
|
export let StaticKey;
|
|
18
20
|
(function (StaticKey) {
|
|
19
21
|
StaticKey["BUY_SERVICE_INFOS"] = "buy-service-infos";
|
|
20
22
|
StaticKey["CHAINS"] = "chains";
|
|
23
|
+
StaticKey["CURRENCY_SYMBOL"] = "currency_symbols";
|
|
21
24
|
StaticKey["MARKETING_CAMPAINGS"] = "marketing-campaigns";
|
|
22
25
|
StaticKey["CROWDLOAN_FUNDS"] = "crowdloan-funds";
|
|
23
26
|
StaticKey["TERM_AND_CONDITION"] = "term-and-condition";
|
|
@@ -25,6 +28,7 @@ export let StaticKey;
|
|
|
25
28
|
})(StaticKey || (StaticKey = {}));
|
|
26
29
|
export const staticData = {
|
|
27
30
|
[StaticKey.CHAINS]: Object.values(ChainInfoMap),
|
|
31
|
+
[StaticKey.CURRENCY_SYMBOL]: currencySymbol,
|
|
28
32
|
[StaticKey.BUY_SERVICE_INFOS]: buyServiceInfos,
|
|
29
33
|
[StaticKey.CROWDLOAN_FUNDS]: crowdloanFunds,
|
|
30
34
|
[StaticKey.MARKETING_CAMPAINGS]: marketingCampaigns,
|