@subwallet/extension-base 1.2.15-0 → 1.2.17-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 +6 -1
- package/cjs/constants/staking.js +2 -1
- package/cjs/koni/api/staking/bonding/utils.js +15 -0
- package/cjs/koni/background/handlers/Extension.js +33 -7
- package/cjs/koni/background/handlers/State.js +11 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/index.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +135 -0
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +9 -62
- package/cjs/services/balance-service/transfer/token.js +4 -3
- package/cjs/services/chain-service/handler/SubstrateApi.js +3 -1
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +21 -26
- package/cjs/services/chain-service/index.js +48 -3
- package/cjs/services/chain-service/types.js +1 -1
- package/cjs/services/chain-service/utils/index.js +18 -12
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +38 -4
- package/cjs/services/earning-service/service.js +3 -0
- package/cjs/services/migration-service/scripts/databases/ClearMetadataDatabase.js +16 -0
- package/cjs/services/migration-service/scripts/index.js +7 -7
- package/cjs/services/transaction-service/index.js +12 -7
- package/cjs/utils/gear/combine.js +28 -0
- package/cjs/utils/gear/grc20.js +56 -49
- package/cjs/utils/gear/index.js +22 -0
- package/cjs/utils/gear/vft.js +173 -0
- package/cjs/utils/metadata.js +45 -34
- package/constants/staking.js +2 -1
- package/koni/api/staking/bonding/utils.d.ts +1 -0
- package/koni/api/staking/bonding/utils.js +14 -0
- package/koni/background/handlers/Extension.d.ts +2 -0
- package/koni/background/handlers/Extension.js +25 -1
- package/koni/background/handlers/State.d.ts +2 -0
- package/koni/background/handlers/State.js +11 -1
- package/package.json +24 -8
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/index.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/gear.d.ts +4 -0
- package/services/balance-service/helpers/subscribe/substrate/gear.js +123 -0
- package/services/balance-service/helpers/subscribe/substrate/index.js +10 -61
- package/services/balance-service/transfer/token.js +5 -4
- package/services/chain-service/handler/SubstrateApi.d.ts +1 -1
- package/services/chain-service/handler/SubstrateApi.js +3 -1
- package/services/chain-service/handler/SubstrateChainHandler.d.ts +1 -0
- package/services/chain-service/handler/SubstrateChainHandler.js +22 -27
- package/services/chain-service/index.d.ts +4 -0
- package/services/chain-service/index.js +49 -4
- package/services/chain-service/types.d.ts +1 -0
- package/services/chain-service/types.js +1 -1
- package/services/chain-service/utils/index.d.ts +1 -0
- package/services/chain-service/utils/index.js +16 -12
- package/services/earning-service/handlers/native-staking/relay-chain.js +39 -5
- package/services/earning-service/service.js +3 -0
- package/services/migration-service/scripts/databases/ClearMetadataDatabase.js +16 -0
- package/services/migration-service/scripts/index.js +7 -7
- package/services/transaction-service/index.js +13 -8
- package/types/metadata.d.ts +9 -2
- package/utils/gear/combine.d.ts +10 -0
- package/utils/gear/combine.js +18 -0
- package/utils/gear/grc20.d.ts +18 -20
- package/utils/gear/grc20.js +53 -45
- package/utils/gear/index.d.ts +2 -0
- package/utils/gear/index.js +3 -1
- package/utils/gear/vft.d.ts +36 -0
- package/utils/gear/vft.js +162 -0
- package/utils/metadata.d.ts +7 -2
- package/utils/metadata.js +41 -31
package/utils/metadata.js
CHANGED
|
@@ -1,39 +1,49 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { getSpecExtensions, getSpecTypes } from '@polkadot/types-known';
|
|
5
|
+
import { u8aToHex } from '@polkadot/util';
|
|
6
|
+
import { merkleizeMetadata } from '@polkadot-api/merkleize-metadata';
|
|
6
7
|
export const _isRuntimeUpdated = signedExtensions => {
|
|
7
8
|
return signedExtensions ? signedExtensions.includes('CheckMetadataHash') : false;
|
|
8
9
|
};
|
|
9
|
-
export const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
const resp = await fetch(createUrl('node/metadata/hash'), {
|
|
14
|
-
method: 'POST',
|
|
15
|
-
headers: {
|
|
16
|
-
'Content-Type': 'application/json'
|
|
17
|
-
},
|
|
18
|
-
body: JSON.stringify(data)
|
|
19
|
-
});
|
|
20
|
-
const rs = await resp.json();
|
|
21
|
-
return rs.metadataHash;
|
|
10
|
+
export const calculateMetadataHash = (extraInfo, metadataV15) => {
|
|
11
|
+
const _merkleizeMetadata = merkleizeMetadata(metadataV15, extraInfo);
|
|
12
|
+
return u8aToHex(_merkleizeMetadata.digest());
|
|
22
13
|
};
|
|
23
|
-
export const getShortMetadata =
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
14
|
+
export const getShortMetadata = (blob, extraInfo, metadata) => {
|
|
15
|
+
const _merkleizeMetadata = merkleizeMetadata(metadata, extraInfo);
|
|
16
|
+
return u8aToHex(_merkleizeMetadata.getProofForExtrinsicPayload(blob));
|
|
17
|
+
};
|
|
18
|
+
export const cacheMetadata = (chain, substrateApi, chainService) => {
|
|
19
|
+
// Update metadata to database with async methods
|
|
20
|
+
substrateApi.api.isReady.then(async api => {
|
|
21
|
+
const currentSpecVersion = api.runtimeVersion.specVersion.toString();
|
|
22
|
+
const specName = api.runtimeVersion.specName.toString();
|
|
23
|
+
const genesisHash = api.genesisHash.toHex();
|
|
24
|
+
const metadata = await (chainService === null || chainService === void 0 ? void 0 : chainService.getMetadata(chain));
|
|
25
|
+
|
|
26
|
+
// Avoid date existed metadata
|
|
27
|
+
if (metadata && metadata.specVersion === currentSpecVersion && metadata.genesisHash === genesisHash) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const systemChain = await api.rpc.system.chain();
|
|
31
|
+
// const _metadata: Option<OpaqueMetadata> = await api.call.metadata.metadataAtVersion(15);
|
|
32
|
+
// const metadataHex = _metadata.isSome ? _metadata.unwrap().toHex().slice(2) : ''; // Need unwrap to create metadata object
|
|
33
|
+
let hexV15;
|
|
34
|
+
const metadataV15 = await api.call.metadata.metadataAtVersion(15);
|
|
35
|
+
if (!metadataV15.isEmpty) {
|
|
36
|
+
hexV15 = metadataV15.unwrap().toHex();
|
|
37
|
+
}
|
|
38
|
+
chainService === null || chainService === void 0 ? void 0 : chainService.upsertMetadata(chain, {
|
|
39
|
+
chain: chain,
|
|
40
|
+
genesisHash: genesisHash,
|
|
41
|
+
specName: specName,
|
|
42
|
+
specVersion: currentSpecVersion,
|
|
43
|
+
hexValue: api.runtimeMetadata.toHex(),
|
|
44
|
+
types: getSpecTypes(api.registry, systemChain, api.runtimeVersion.specName, api.runtimeVersion.specVersion),
|
|
45
|
+
userExtensions: getSpecExtensions(api.registry, systemChain, api.runtimeVersion.specName),
|
|
46
|
+
hexV15
|
|
47
|
+
}).catch(console.error);
|
|
48
|
+
}).catch(console.error);
|
|
39
49
|
};
|