@talismn/balances 0.0.0-pr2032-20250610081842 → 0.0.0-pr2033-20250610094153
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.
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
var PromisePool = require('@supercharge/promise-pool');
|
4
4
|
var chaindataProvider = require('@talismn/chaindata-provider');
|
5
|
-
var
|
5
|
+
var scale = require('@talismn/scale');
|
6
6
|
var dexie = require('dexie');
|
7
7
|
var isEqual = require('lodash/isEqual');
|
8
8
|
var rxjs = require('rxjs');
|
9
|
+
var scaleTs = require('scale-ts');
|
9
10
|
var anylogger = require('anylogger');
|
10
11
|
var tokenRates = require('@talismn/token-rates');
|
11
12
|
var util = require('@talismn/util');
|
@@ -15,14 +16,13 @@ var utilCrypto = require('@polkadot/util-crypto');
|
|
15
16
|
var pako = require('pako');
|
16
17
|
var viem = require('viem');
|
17
18
|
var txwrapperCore = require('@substrate/txwrapper-core');
|
18
|
-
var scale = require('@talismn/scale');
|
19
19
|
var camelCase = require('lodash/camelCase');
|
20
20
|
var types = require('@polkadot/types');
|
21
21
|
var groupBy = require('lodash/groupBy');
|
22
22
|
var utils = require('@polkadot-api/utils');
|
23
23
|
var polkadotApi = require('polkadot-api');
|
24
24
|
var chainConnector = require('@talismn/chain-connector');
|
25
|
-
var
|
25
|
+
var sapi = require('@talismn/sapi');
|
26
26
|
var upperFirst = require('lodash/upperFirst');
|
27
27
|
var apiContract = require('@polkadot/api-contract');
|
28
28
|
var lzString = require('lz-string');
|
@@ -1184,8 +1184,28 @@ class MiniMetadataUpdater {
|
|
1184
1184
|
} = chain;
|
1185
1185
|
if (specName === null) return;
|
1186
1186
|
if (specVersion === null) return;
|
1187
|
-
|
1188
|
-
|
1187
|
+
const fetchMetadata = async () => {
|
1188
|
+
const errors = {
|
1189
|
+
v15: null,
|
1190
|
+
v14: null
|
1191
|
+
};
|
1192
|
+
try {
|
1193
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_call", ["Metadata_metadata_at_version", scale.toHex(scaleTs.u32.enc(15))]);
|
1194
|
+
const result = response ? scaleTs.Option(scaleTs.Bytes()).dec(response) : null;
|
1195
|
+
if (result) return result;
|
1196
|
+
} catch (v15Cause) {
|
1197
|
+
errors.v15 = v15Cause;
|
1198
|
+
}
|
1199
|
+
try {
|
1200
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_getMetadata", []);
|
1201
|
+
if (response) return response;
|
1202
|
+
} catch (v14Cause) {
|
1203
|
+
errors.v14 = v14Cause;
|
1204
|
+
}
|
1205
|
+
log.warn(`Failed to fetch both metadata v15 and v14 for chain ${chainId}`, errors.v15, errors.v14);
|
1206
|
+
return null;
|
1207
|
+
};
|
1208
|
+
const [metadataRpc, systemProperties] = await Promise.all([fetchMetadata(), this.#chainConnectors.substrate?.send(chainId, "system_properties", [])]);
|
1189
1209
|
for (const mod of this.#balanceModules.filter(m => m.type.startsWith("substrate-"))) {
|
1190
1210
|
const balancesConfig = (chain.balancesConfig ?? []).find(({
|
1191
1211
|
moduleType
|
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
var PromisePool = require('@supercharge/promise-pool');
|
4
4
|
var chaindataProvider = require('@talismn/chaindata-provider');
|
5
|
-
var
|
5
|
+
var scale = require('@talismn/scale');
|
6
6
|
var dexie = require('dexie');
|
7
7
|
var isEqual = require('lodash/isEqual');
|
8
8
|
var rxjs = require('rxjs');
|
9
|
+
var scaleTs = require('scale-ts');
|
9
10
|
var anylogger = require('anylogger');
|
10
11
|
var tokenRates = require('@talismn/token-rates');
|
11
12
|
var util = require('@talismn/util');
|
@@ -15,14 +16,13 @@ var utilCrypto = require('@polkadot/util-crypto');
|
|
15
16
|
var pako = require('pako');
|
16
17
|
var viem = require('viem');
|
17
18
|
var txwrapperCore = require('@substrate/txwrapper-core');
|
18
|
-
var scale = require('@talismn/scale');
|
19
19
|
var camelCase = require('lodash/camelCase');
|
20
20
|
var types = require('@polkadot/types');
|
21
21
|
var groupBy = require('lodash/groupBy');
|
22
22
|
var utils = require('@polkadot-api/utils');
|
23
23
|
var polkadotApi = require('polkadot-api');
|
24
24
|
var chainConnector = require('@talismn/chain-connector');
|
25
|
-
var
|
25
|
+
var sapi = require('@talismn/sapi');
|
26
26
|
var upperFirst = require('lodash/upperFirst');
|
27
27
|
var apiContract = require('@polkadot/api-contract');
|
28
28
|
var lzString = require('lz-string');
|
@@ -1184,8 +1184,28 @@ class MiniMetadataUpdater {
|
|
1184
1184
|
} = chain;
|
1185
1185
|
if (specName === null) return;
|
1186
1186
|
if (specVersion === null) return;
|
1187
|
-
|
1188
|
-
|
1187
|
+
const fetchMetadata = async () => {
|
1188
|
+
const errors = {
|
1189
|
+
v15: null,
|
1190
|
+
v14: null
|
1191
|
+
};
|
1192
|
+
try {
|
1193
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_call", ["Metadata_metadata_at_version", scale.toHex(scaleTs.u32.enc(15))]);
|
1194
|
+
const result = response ? scaleTs.Option(scaleTs.Bytes()).dec(response) : null;
|
1195
|
+
if (result) return result;
|
1196
|
+
} catch (v15Cause) {
|
1197
|
+
errors.v15 = v15Cause;
|
1198
|
+
}
|
1199
|
+
try {
|
1200
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_getMetadata", []);
|
1201
|
+
if (response) return response;
|
1202
|
+
} catch (v14Cause) {
|
1203
|
+
errors.v14 = v14Cause;
|
1204
|
+
}
|
1205
|
+
log.warn(`Failed to fetch both metadata v15 and v14 for chain ${chainId}`, errors.v15, errors.v14);
|
1206
|
+
return null;
|
1207
|
+
};
|
1208
|
+
const [metadataRpc, systemProperties] = await Promise.all([fetchMetadata(), this.#chainConnectors.substrate?.send(chainId, "system_properties", [])]);
|
1189
1209
|
for (const mod of this.#balanceModules.filter(m => m.type.startsWith("substrate-"))) {
|
1190
1210
|
const balancesConfig = (chain.balancesConfig ?? []).find(({
|
1191
1211
|
moduleType
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import PromisePool$1, { PromisePool } from '@supercharge/promise-pool';
|
2
2
|
import { fetchMiniMetadatas, fetchInitMiniMetadatas, availableTokenLogoFilenames, githubTokenLogoUrl } from '@talismn/chaindata-provider';
|
3
|
-
import {
|
3
|
+
import { toHex, unifyMetadata, decAnyMetadata, getDynamicBuilder, getLookupFn, getMetadataVersion, compactMetadata, encodeMetadata, decodeScale, encodeStateKey, papiParse } from '@talismn/scale';
|
4
4
|
import { Dexie, liveQuery } from 'dexie';
|
5
5
|
import isEqual from 'lodash/isEqual';
|
6
6
|
import { from, Observable, scan, share, map, switchAll, combineLatest, mergeMap, toArray, interval, startWith, exhaustMap, pipe, filter, shareReplay, combineLatestWith, distinctUntilChanged, firstValueFrom, BehaviorSubject, debounceTime, takeUntil, switchMap, withLatestFrom, concatMap } from 'rxjs';
|
7
|
+
import { u32, Option, Bytes, u128, Struct } from 'scale-ts';
|
7
8
|
import anylogger from 'anylogger';
|
8
9
|
import { newTokenRates } from '@talismn/token-rates';
|
9
10
|
import { isBigInt, BigMath, planckToTokens, isTruthy, isArrayOf, isEthereumAddress, hasOwnProperty, decodeAnyAddress, isNotNil, blake2Concat, firstThenDebounce, Deferred } from '@talismn/util';
|
@@ -13,14 +14,13 @@ import { xxhashAsU8a, blake2AsU8a } from '@polkadot/util-crypto';
|
|
13
14
|
import pako from 'pako';
|
14
15
|
import { parseAbi, isHex, hexToBigInt } from 'viem';
|
15
16
|
import { defineMethod } from '@substrate/txwrapper-core';
|
16
|
-
import { unifyMetadata, decAnyMetadata, getDynamicBuilder, getLookupFn, getMetadataVersion, compactMetadata, encodeMetadata, decodeScale, encodeStateKey, papiParse } from '@talismn/scale';
|
17
17
|
import camelCase from 'lodash/camelCase';
|
18
18
|
import { Metadata, TypeRegistry } from '@polkadot/types';
|
19
19
|
import groupBy from 'lodash/groupBy';
|
20
|
-
import { mergeUint8, toHex } from '@polkadot-api/utils';
|
20
|
+
import { mergeUint8, toHex as toHex$1 } from '@polkadot-api/utils';
|
21
21
|
import { Binary, AccountId } from 'polkadot-api';
|
22
22
|
import { ChainConnectionError } from '@talismn/chain-connector';
|
23
|
-
import {
|
23
|
+
import { getScaleApi } from '@talismn/sapi';
|
24
24
|
import upperFirst from 'lodash/upperFirst';
|
25
25
|
import { Abi } from '@polkadot/api-contract';
|
26
26
|
import { compressToEncodedURIComponent } from 'lz-string';
|
@@ -1171,8 +1171,28 @@ class MiniMetadataUpdater {
|
|
1171
1171
|
} = chain;
|
1172
1172
|
if (specName === null) return;
|
1173
1173
|
if (specVersion === null) return;
|
1174
|
-
|
1175
|
-
|
1174
|
+
const fetchMetadata = async () => {
|
1175
|
+
const errors = {
|
1176
|
+
v15: null,
|
1177
|
+
v14: null
|
1178
|
+
};
|
1179
|
+
try {
|
1180
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_call", ["Metadata_metadata_at_version", toHex(u32.enc(15))]);
|
1181
|
+
const result = response ? Option(Bytes()).dec(response) : null;
|
1182
|
+
if (result) return result;
|
1183
|
+
} catch (v15Cause) {
|
1184
|
+
errors.v15 = v15Cause;
|
1185
|
+
}
|
1186
|
+
try {
|
1187
|
+
const response = await this.#chainConnectors.substrate?.send(chainId, "state_getMetadata", []);
|
1188
|
+
if (response) return response;
|
1189
|
+
} catch (v14Cause) {
|
1190
|
+
errors.v14 = v14Cause;
|
1191
|
+
}
|
1192
|
+
log.warn(`Failed to fetch both metadata v15 and v14 for chain ${chainId}`, errors.v15, errors.v14);
|
1193
|
+
return null;
|
1194
|
+
};
|
1195
|
+
const [metadataRpc, systemProperties] = await Promise.all([fetchMetadata(), this.#chainConnectors.substrate?.send(chainId, "system_properties", [])]);
|
1176
1196
|
for (const mod of this.#balanceModules.filter(m => m.type.startsWith("substrate-"))) {
|
1177
1197
|
const balancesConfig = (chain.balancesConfig ?? []).find(({
|
1178
1198
|
moduleType
|
@@ -3827,7 +3847,7 @@ const SubForeignAssetsModule = hydrate => {
|
|
3827
3847
|
const callData = Binary.fromBytes(mergeUint8([new Uint8Array(location), codec.enc(args)]));
|
3828
3848
|
return {
|
3829
3849
|
type: "substrate",
|
3830
|
-
callData: toHex(callData.asBytes())
|
3850
|
+
callData: toHex$1(callData.asBytes())
|
3831
3851
|
};
|
3832
3852
|
} catch (cause) {
|
3833
3853
|
throw new Error(`Failed to build ${moduleType$3} transfer tx`, {
|
@@ -7348,7 +7368,7 @@ const SubTokensModule = hydrate => {
|
|
7348
7368
|
}
|
7349
7369
|
return {
|
7350
7370
|
type: "substrate",
|
7351
|
-
callData: toHex(callData.asBytes())
|
7371
|
+
callData: toHex$1(callData.asBytes())
|
7352
7372
|
};
|
7353
7373
|
}
|
7354
7374
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@talismn/balances",
|
3
|
-
"version": "0.0.0-
|
3
|
+
"version": "0.0.0-pr2033-20250610094153",
|
4
4
|
"author": "Talisman",
|
5
5
|
"homepage": "https://talisman.xyz",
|
6
6
|
"license": "GPL-3.0-or-later",
|
@@ -34,13 +34,13 @@
|
|
34
34
|
"rxjs": "^7.8.1",
|
35
35
|
"scale-ts": "^1.6.1",
|
36
36
|
"viem": "^2.27.3",
|
37
|
-
"@talismn/chain-connector": "0.0.0-
|
38
|
-
"@talismn/
|
39
|
-
"@talismn/
|
40
|
-
"@talismn/sapi": "0.0.0-pr2032-20250610081842",
|
37
|
+
"@talismn/chain-connector": "0.0.0-pr2033-20250610094153",
|
38
|
+
"@talismn/chaindata-provider": "0.0.0-pr2033-20250610094153",
|
39
|
+
"@talismn/chain-connector-evm": "0.0.0-pr2033-20250610094153",
|
41
40
|
"@talismn/scale": "0.1.2",
|
42
|
-
"@talismn/token-rates": "0.0.0-
|
43
|
-
"@talismn/util": "0.4.2"
|
41
|
+
"@talismn/token-rates": "0.0.0-pr2033-20250610094153",
|
42
|
+
"@talismn/util": "0.4.2",
|
43
|
+
"@talismn/sapi": "0.0.4"
|
44
44
|
},
|
45
45
|
"devDependencies": {
|
46
46
|
"@polkadot/api-contract": "16.1.2",
|