@subwallet/extension-base 1.2.11-1 → 1.2.13-0
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 +1 -0
- package/cjs/koni/background/handlers/State.js +22 -19
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +1 -1
- package/cjs/services/balance-service/transfer/xcm/snowBridge.js +10 -12
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +1 -1
- package/cjs/services/chain-service/index.js +5 -4
- package/cjs/services/earning-service/handlers/lending/interlay.js +1 -1
- package/cjs/utils/metadata.js +1 -1
- package/koni/background/handlers/State.js +22 -19
- package/package.json +6 -6
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +1 -1
- package/services/balance-service/transfer/xcm/snowBridge.js +10 -12
- package/services/chain-service/handler/SubstrateChainHandler.js +1 -1
- package/services/chain-service/index.js +4 -3
- package/services/earning-service/handlers/lending/interlay.js +1 -1
- package/utils/metadata.d.ts +1 -1
- package/utils/metadata.js +1 -1
|
@@ -1225,35 +1225,38 @@ class KoniState {
|
|
|
1225
1225
|
from: transactionParams.from,
|
|
1226
1226
|
to: transactionParams.to,
|
|
1227
1227
|
value: autoFormatNumber(transactionParams.value),
|
|
1228
|
-
|
|
1228
|
+
gas: autoFormatNumber(transactionParams.gas),
|
|
1229
|
+
gasPrice: autoFormatNumber(transactionParams.gasPrice || transactionParams.gasLimit),
|
|
1229
1230
|
maxPriorityFeePerGas: autoFormatNumber(transactionParams.maxPriorityFeePerGas),
|
|
1230
1231
|
maxFeePerGas: autoFormatNumber(transactionParams.maxFeePerGas),
|
|
1231
1232
|
data: transactionParams.data
|
|
1232
1233
|
};
|
|
1233
|
-
|
|
1234
|
+
if (!transactionParams.gas) {
|
|
1235
|
+
const getTransactionGas = async () => {
|
|
1236
|
+
try {
|
|
1237
|
+
transaction.gas = await web3.eth.estimateGas({
|
|
1238
|
+
...transaction
|
|
1239
|
+
});
|
|
1240
|
+
} catch (e) {
|
|
1241
|
+
// @ts-ignore
|
|
1242
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1243
|
+
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1244
|
+
}
|
|
1245
|
+
};
|
|
1246
|
+
|
|
1247
|
+
// Calculate transaction data
|
|
1234
1248
|
try {
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1249
|
+
await Promise.race([getTransactionGas(), (0, _utils3.wait)(3000).then(async () => {
|
|
1250
|
+
if (!transaction.gas) {
|
|
1251
|
+
await this.chainService.initSingleApi(networkKey);
|
|
1252
|
+
await getTransactionGas();
|
|
1253
|
+
}
|
|
1254
|
+
})]);
|
|
1238
1255
|
} catch (e) {
|
|
1239
1256
|
// @ts-ignore
|
|
1240
1257
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1241
1258
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1242
1259
|
}
|
|
1243
|
-
};
|
|
1244
|
-
|
|
1245
|
-
// Calculate transaction data
|
|
1246
|
-
try {
|
|
1247
|
-
await Promise.race([getTransactionGas(), (0, _utils3.wait)(3000).then(async () => {
|
|
1248
|
-
if (!transaction.gas) {
|
|
1249
|
-
await this.chainService.initSingleApi(networkKey);
|
|
1250
|
-
await getTransactionGas();
|
|
1251
|
-
}
|
|
1252
|
-
})]);
|
|
1253
|
-
} catch (e) {
|
|
1254
|
-
// @ts-ignore
|
|
1255
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1256
|
-
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1257
1260
|
}
|
|
1258
1261
|
if (!transaction.gas) {
|
|
1259
1262
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INVALID_PARAMS);
|
package/cjs/packageInfo.js
CHANGED
|
@@ -447,7 +447,7 @@ const subscribeGRC20Balance = _ref9 => {
|
|
|
447
447
|
substrateApi
|
|
448
448
|
} = _ref9;
|
|
449
449
|
if (!(substrateApi instanceof _api.GearApi)) {
|
|
450
|
-
console.warn('Cannot subscribe
|
|
450
|
+
console.warn('Cannot subscribe VFT balance without GearApi instance');
|
|
451
451
|
return _util.noop;
|
|
452
452
|
}
|
|
453
453
|
const chain = chainInfo.slug;
|
|
@@ -37,24 +37,22 @@ async function getSnowBridgeEvmTransfer(tokenInfo, originChainInfo, destinationC
|
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
38
38
|
const transferEncodedCall = transferCall.encodeABI();
|
|
39
39
|
const [priority, sendTokenFee] = await Promise.all([(0, _utils3.calculateGasFeeParams)(evmApi, evmApi.chainSlug), getSendFeeToken(snowBridgeContract, tokenContract, destinationChainParaId, destinationFee)]);
|
|
40
|
-
|
|
41
|
-
try {
|
|
42
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
43
|
-
gasLimit = await transferCall.estimateGas({
|
|
44
|
-
from: sender
|
|
45
|
-
});
|
|
46
|
-
} catch (e) {
|
|
47
|
-
gasLimit = 200000; // todo: handle this better
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return {
|
|
40
|
+
const transactionConfig = {
|
|
51
41
|
from: sender,
|
|
52
42
|
to: snowBridgeContractAddress,
|
|
53
43
|
value: sendTokenFee,
|
|
54
44
|
data: transferEncodedCall,
|
|
55
|
-
gas: gasLimit,
|
|
56
45
|
gasPrice: priority.gasPrice,
|
|
57
46
|
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
58
47
|
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
59
48
|
};
|
|
49
|
+
let gasLimit;
|
|
50
|
+
try {
|
|
51
|
+
gasLimit = await evmApi.api.eth.estimateGas(transactionConfig);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
gasLimit = 200000; // todo: handle this better
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
transactionConfig.gas = gasLimit;
|
|
57
|
+
return transactionConfig;
|
|
60
58
|
}
|
|
@@ -144,7 +144,7 @@ class SubstrateChainHandler extends _AbstractChainHandler.AbstractChainHandler {
|
|
|
144
144
|
}
|
|
145
145
|
async getGrc20TokenInfo(apiPromise, contractAddress) {
|
|
146
146
|
if (!(apiPromise instanceof _api.GearApi)) {
|
|
147
|
-
console.warn('Cannot subscribe
|
|
147
|
+
console.warn('Cannot subscribe VFT balance without GearApi instance');
|
|
148
148
|
return ['', -1, '', true];
|
|
149
149
|
}
|
|
150
150
|
let contractError = false;
|
|
@@ -22,12 +22,13 @@ var _logger = require("@polkadot/util/logger");
|
|
|
22
22
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
23
23
|
// SPDX-License-Identifier: Apache-2.0
|
|
24
24
|
|
|
25
|
-
const filterChainInfoMap = data => {
|
|
25
|
+
const filterChainInfoMap = (data, ignoredChains) => {
|
|
26
26
|
return Object.fromEntries(Object.entries(data).filter(_ref => {
|
|
27
|
-
let [, info] = _ref;
|
|
28
|
-
return !info.bitcoinInfo;
|
|
27
|
+
let [slug, info] = _ref;
|
|
28
|
+
return !info.bitcoinInfo && !ignoredChains.includes(slug);
|
|
29
29
|
}));
|
|
30
30
|
};
|
|
31
|
+
const ignoredList = ['bevm', 'bevmTest', 'bevm_testnet', 'layerEdge_testnet', 'merlinEvm', 'botanixEvmTest', 'syscoin_evm', 'rollux_evm'];
|
|
31
32
|
const filterAssetInfoMap = (chainInfo, assets) => {
|
|
32
33
|
return Object.fromEntries(Object.entries(assets).filter(_ref2 => {
|
|
33
34
|
let [, info] = _ref2;
|
|
@@ -857,7 +858,7 @@ class ChainService {
|
|
|
857
858
|
}
|
|
858
859
|
async initChains() {
|
|
859
860
|
const storedChainSettings = await this.dbService.getAllChainStore();
|
|
860
|
-
const defaultChainInfoMap = filterChainInfoMap(_chainList.ChainInfoMap);
|
|
861
|
+
const defaultChainInfoMap = filterChainInfoMap(_chainList.ChainInfoMap, ignoredList);
|
|
861
862
|
const storedChainSettingMap = {};
|
|
862
863
|
storedChainSettings.forEach(chainStoredSetting => {
|
|
863
864
|
storedChainSettingMap[chainStoredSetting.slug] = chainStoredSetting;
|
|
@@ -98,7 +98,7 @@ class InterlayLendingPoolHandler extends _base.default {
|
|
|
98
98
|
for (let i = 0; i < balances.length; i++) {
|
|
99
99
|
const balanceItem = balances[i];
|
|
100
100
|
const address = useAddresses[i];
|
|
101
|
-
const bnActiveBalance = balanceItem.
|
|
101
|
+
const bnActiveBalance = balanceItem.reserved || _util.BN_ZERO;
|
|
102
102
|
const bnTotalBalance = bnActiveBalance.mul(new _util.BN(exchangeRate)).div(decimals);
|
|
103
103
|
const result = {
|
|
104
104
|
...this.baseInfo,
|
package/cjs/utils/metadata.js
CHANGED
|
@@ -10,7 +10,7 @@ exports.getShortMetadata = exports.getMetadataHash = exports._isRuntimeUpdated =
|
|
|
10
10
|
const LEDGER_API_URL = 'https://ledger-api.subwallet.app';
|
|
11
11
|
const createUrl = path => `${LEDGER_API_URL}/${path}`;
|
|
12
12
|
const _isRuntimeUpdated = signedExtensions => {
|
|
13
|
-
return signedExtensions.includes('CheckMetadataHash');
|
|
13
|
+
return signedExtensions ? signedExtensions.includes('CheckMetadataHash') : false;
|
|
14
14
|
};
|
|
15
15
|
exports._isRuntimeUpdated = _isRuntimeUpdated;
|
|
16
16
|
const getMetadataHash = async chain => {
|
|
@@ -1202,35 +1202,38 @@ export default class KoniState {
|
|
|
1202
1202
|
from: transactionParams.from,
|
|
1203
1203
|
to: transactionParams.to,
|
|
1204
1204
|
value: autoFormatNumber(transactionParams.value),
|
|
1205
|
-
|
|
1205
|
+
gas: autoFormatNumber(transactionParams.gas),
|
|
1206
|
+
gasPrice: autoFormatNumber(transactionParams.gasPrice || transactionParams.gasLimit),
|
|
1206
1207
|
maxPriorityFeePerGas: autoFormatNumber(transactionParams.maxPriorityFeePerGas),
|
|
1207
1208
|
maxFeePerGas: autoFormatNumber(transactionParams.maxFeePerGas),
|
|
1208
1209
|
data: transactionParams.data
|
|
1209
1210
|
};
|
|
1210
|
-
|
|
1211
|
+
if (!transactionParams.gas) {
|
|
1212
|
+
const getTransactionGas = async () => {
|
|
1213
|
+
try {
|
|
1214
|
+
transaction.gas = await web3.eth.estimateGas({
|
|
1215
|
+
...transaction
|
|
1216
|
+
});
|
|
1217
|
+
} catch (e) {
|
|
1218
|
+
// @ts-ignore
|
|
1219
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1220
|
+
throw new EvmProviderError(EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1221
|
+
}
|
|
1222
|
+
};
|
|
1223
|
+
|
|
1224
|
+
// Calculate transaction data
|
|
1211
1225
|
try {
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1226
|
+
await Promise.race([getTransactionGas(), wait(3000).then(async () => {
|
|
1227
|
+
if (!transaction.gas) {
|
|
1228
|
+
await this.chainService.initSingleApi(networkKey);
|
|
1229
|
+
await getTransactionGas();
|
|
1230
|
+
}
|
|
1231
|
+
})]);
|
|
1215
1232
|
} catch (e) {
|
|
1216
1233
|
// @ts-ignore
|
|
1217
1234
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1218
1235
|
throw new EvmProviderError(EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1219
1236
|
}
|
|
1220
|
-
};
|
|
1221
|
-
|
|
1222
|
-
// Calculate transaction data
|
|
1223
|
-
try {
|
|
1224
|
-
await Promise.race([getTransactionGas(), wait(3000).then(async () => {
|
|
1225
|
-
if (!transaction.gas) {
|
|
1226
|
-
await this.chainService.initSingleApi(networkKey);
|
|
1227
|
-
await getTransactionGas();
|
|
1228
|
-
}
|
|
1229
|
-
})]);
|
|
1230
|
-
} catch (e) {
|
|
1231
|
-
// @ts-ignore
|
|
1232
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1233
|
-
throw new EvmProviderError(EvmProviderErrorType.INVALID_PARAMS, e === null || e === void 0 ? void 0 : e.message);
|
|
1234
1237
|
}
|
|
1235
1238
|
if (!transaction.gas) {
|
|
1236
1239
|
throw new EvmProviderError(EvmProviderErrorType.INVALID_PARAMS);
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./cjs/detectPackage.js"
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
|
-
"version": "1.2.
|
|
20
|
+
"version": "1.2.13-0",
|
|
21
21
|
"main": "./cjs/index.js",
|
|
22
22
|
"module": "./index.js",
|
|
23
23
|
"types": "./index.d.ts",
|
|
@@ -1948,11 +1948,11 @@
|
|
|
1948
1948
|
"@reduxjs/toolkit": "^1.9.1",
|
|
1949
1949
|
"@sora-substrate/type-definitions": "^1.17.7",
|
|
1950
1950
|
"@substrate/connect": "^0.8.9",
|
|
1951
|
-
"@subwallet/chain-list": "0.2.
|
|
1952
|
-
"@subwallet/extension-base": "^1.2.
|
|
1953
|
-
"@subwallet/extension-chains": "^1.2.
|
|
1954
|
-
"@subwallet/extension-dapp": "^1.2.
|
|
1955
|
-
"@subwallet/extension-inject": "^1.2.
|
|
1951
|
+
"@subwallet/chain-list": "0.2.72",
|
|
1952
|
+
"@subwallet/extension-base": "^1.2.13-0",
|
|
1953
|
+
"@subwallet/extension-chains": "^1.2.13-0",
|
|
1954
|
+
"@subwallet/extension-dapp": "^1.2.13-0",
|
|
1955
|
+
"@subwallet/extension-inject": "^1.2.13-0",
|
|
1956
1956
|
"@subwallet/keyring": "^0.1.5",
|
|
1957
1957
|
"@subwallet/ui-keyring": "^0.1.5",
|
|
1958
1958
|
"@walletconnect/keyvaluestorage": "^1.1.1",
|
package/packageInfo.js
CHANGED
|
@@ -7,5 +7,5 @@ export const packageInfo = {
|
|
|
7
7
|
name: '@subwallet/extension-base',
|
|
8
8
|
path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
|
|
9
9
|
type: 'esm',
|
|
10
|
-
version: '1.2.
|
|
10
|
+
version: '1.2.13-0'
|
|
11
11
|
};
|
|
@@ -430,7 +430,7 @@ const subscribeGRC20Balance = ({
|
|
|
430
430
|
substrateApi
|
|
431
431
|
}) => {
|
|
432
432
|
if (!(substrateApi instanceof GearApi)) {
|
|
433
|
-
console.warn('Cannot subscribe
|
|
433
|
+
console.warn('Cannot subscribe VFT balance without GearApi instance');
|
|
434
434
|
return noop;
|
|
435
435
|
}
|
|
436
436
|
const chain = chainInfo.slug;
|
|
@@ -31,24 +31,22 @@ export async function getSnowBridgeEvmTransfer(tokenInfo, originChainInfo, desti
|
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
32
32
|
const transferEncodedCall = transferCall.encodeABI();
|
|
33
33
|
const [priority, sendTokenFee] = await Promise.all([calculateGasFeeParams(evmApi, evmApi.chainSlug), getSendFeeToken(snowBridgeContract, tokenContract, destinationChainParaId, destinationFee)]);
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
37
|
-
gasLimit = await transferCall.estimateGas({
|
|
38
|
-
from: sender
|
|
39
|
-
});
|
|
40
|
-
} catch (e) {
|
|
41
|
-
gasLimit = 200000; // todo: handle this better
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return {
|
|
34
|
+
const transactionConfig = {
|
|
45
35
|
from: sender,
|
|
46
36
|
to: snowBridgeContractAddress,
|
|
47
37
|
value: sendTokenFee,
|
|
48
38
|
data: transferEncodedCall,
|
|
49
|
-
gas: gasLimit,
|
|
50
39
|
gasPrice: priority.gasPrice,
|
|
51
40
|
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
52
41
|
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
53
42
|
};
|
|
43
|
+
let gasLimit;
|
|
44
|
+
try {
|
|
45
|
+
gasLimit = await evmApi.api.eth.estimateGas(transactionConfig);
|
|
46
|
+
} catch (e) {
|
|
47
|
+
gasLimit = 200000; // todo: handle this better
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
transactionConfig.gas = gasLimit;
|
|
51
|
+
return transactionConfig;
|
|
54
52
|
}
|
|
@@ -137,7 +137,7 @@ export class SubstrateChainHandler extends AbstractChainHandler {
|
|
|
137
137
|
}
|
|
138
138
|
async getGrc20TokenInfo(apiPromise, contractAddress) {
|
|
139
139
|
if (!(apiPromise instanceof GearApi)) {
|
|
140
|
-
console.warn('Cannot subscribe
|
|
140
|
+
console.warn('Cannot subscribe VFT balance without GearApi instance');
|
|
141
141
|
return ['', -1, '', true];
|
|
142
142
|
}
|
|
143
143
|
let contractError = false;
|
|
@@ -15,9 +15,10 @@ import { addLazy, fetchStaticData, filterAssetsByChainAndType, MODULE_SUPPORT }
|
|
|
15
15
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
16
16
|
import Web3 from 'web3';
|
|
17
17
|
import { logger as createLogger } from '@polkadot/util/logger';
|
|
18
|
-
const filterChainInfoMap = data => {
|
|
19
|
-
return Object.fromEntries(Object.entries(data).filter(([, info]) => !info.bitcoinInfo));
|
|
18
|
+
const filterChainInfoMap = (data, ignoredChains) => {
|
|
19
|
+
return Object.fromEntries(Object.entries(data).filter(([slug, info]) => !info.bitcoinInfo && !ignoredChains.includes(slug)));
|
|
20
20
|
};
|
|
21
|
+
const ignoredList = ['bevm', 'bevmTest', 'bevm_testnet', 'layerEdge_testnet', 'merlinEvm', 'botanixEvmTest', 'syscoin_evm', 'rollux_evm'];
|
|
21
22
|
const filterAssetInfoMap = (chainInfo, assets) => {
|
|
22
23
|
return Object.fromEntries(Object.entries(assets).filter(([, info]) => chainInfo[info.originChain]));
|
|
23
24
|
};
|
|
@@ -829,7 +830,7 @@ export class ChainService {
|
|
|
829
830
|
}
|
|
830
831
|
async initChains() {
|
|
831
832
|
const storedChainSettings = await this.dbService.getAllChainStore();
|
|
832
|
-
const defaultChainInfoMap = filterChainInfoMap(ChainInfoMap);
|
|
833
|
+
const defaultChainInfoMap = filterChainInfoMap(ChainInfoMap, ignoredList);
|
|
833
834
|
const storedChainSettingMap = {};
|
|
834
835
|
storedChainSettings.forEach(chainStoredSetting => {
|
|
835
836
|
storedChainSettingMap[chainStoredSetting.slug] = chainStoredSetting;
|
|
@@ -91,7 +91,7 @@ export default class InterlayLendingPoolHandler extends BaseLendingPoolHandler {
|
|
|
91
91
|
for (let i = 0; i < balances.length; i++) {
|
|
92
92
|
const balanceItem = balances[i];
|
|
93
93
|
const address = useAddresses[i];
|
|
94
|
-
const bnActiveBalance = balanceItem.
|
|
94
|
+
const bnActiveBalance = balanceItem.reserved || BN_ZERO;
|
|
95
95
|
const bnTotalBalance = bnActiveBalance.mul(new BN(exchangeRate)).div(decimals);
|
|
96
96
|
const result = {
|
|
97
97
|
...this.baseInfo,
|
package/utils/metadata.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const _isRuntimeUpdated: (signedExtensions
|
|
1
|
+
export declare const _isRuntimeUpdated: (signedExtensions?: string[]) => boolean;
|
|
2
2
|
export declare const getMetadataHash: (chain: string) => Promise<string>;
|
|
3
3
|
export declare const getShortMetadata: (chain: string, blob: string) => Promise<string>;
|
package/utils/metadata.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
const LEDGER_API_URL = 'https://ledger-api.subwallet.app';
|
|
5
5
|
const createUrl = path => `${LEDGER_API_URL}/${path}`;
|
|
6
6
|
export const _isRuntimeUpdated = signedExtensions => {
|
|
7
|
-
return signedExtensions.includes('CheckMetadataHash');
|
|
7
|
+
return signedExtensions ? signedExtensions.includes('CheckMetadataHash') : false;
|
|
8
8
|
};
|
|
9
9
|
export const getMetadataHash = async chain => {
|
|
10
10
|
const data = {
|