@talismn/sapi 0.0.3 → 0.0.4
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.
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ExtDef } from "@polkadot/types/extrinsic/signedExtensions/types";
|
|
2
|
-
import { getDynamicBuilder, getLookupFn,
|
|
2
|
+
import { getDynamicBuilder, getLookupFn, UnifiedMetadata } from "@talismn/scale";
|
|
3
3
|
import { SapiConnector } from "./getSapiConnector";
|
|
4
|
-
export type ScaleMetadata = V14 | V15;
|
|
5
4
|
export type ScaleBuilder = ReturnType<typeof getDynamicBuilder>;
|
|
6
5
|
export type ScaleLookup = ReturnType<typeof getLookupFn>;
|
|
7
6
|
export type Chain = {
|
|
@@ -14,7 +13,7 @@ export type Chain = {
|
|
|
14
13
|
hasCheckMetadataHash?: boolean;
|
|
15
14
|
signedExtensions?: ExtDef;
|
|
16
15
|
registryTypes?: unknown;
|
|
17
|
-
metadata:
|
|
16
|
+
metadata: UnifiedMetadata;
|
|
18
17
|
lookup: ScaleLookup;
|
|
19
18
|
builder: ScaleBuilder;
|
|
20
19
|
};
|
|
@@ -23,7 +23,7 @@ const getCallDocs = (chain, pallet, method) => {
|
|
|
23
23
|
try {
|
|
24
24
|
const typeIdCalls = chain.metadata.pallets.find(({
|
|
25
25
|
name
|
|
26
|
-
}) => name === pallet)?.calls;
|
|
26
|
+
}) => name === pallet)?.calls?.type;
|
|
27
27
|
if (!typeIdCalls) return null;
|
|
28
28
|
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -375,7 +375,7 @@ const getPayloadWithMetadataHash = (chain, chainInfo, payload) => {
|
|
|
375
375
|
|
|
376
376
|
// TODO do this without PJS / registry => waiting for @polkadot-api/tx-utils
|
|
377
377
|
// const { extra, additionalSigned } = getSignedExtensionValues(payload, metadata)
|
|
378
|
-
// const badExtPayload = mergeUint8(fromHex(payload.method), ...extra, ...additionalSigned)
|
|
378
|
+
// const badExtPayload = mergeUint8([fromHex(payload.method), ...extra, ...additionalSigned])
|
|
379
379
|
|
|
380
380
|
const registry = getTypeRegistry(chain, payload);
|
|
381
381
|
const extPayload = registry.createType("ExtrinsicPayload", payloadWithMetadataHash);
|
|
@@ -435,7 +435,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
435
435
|
codec,
|
|
436
436
|
location
|
|
437
437
|
} = chain.builder.buildCall(palletName, methodName);
|
|
438
|
-
const method = polkadotApi.Binary.fromBytes(utils.mergeUint8(new Uint8Array(location), codec.enc(args)));
|
|
438
|
+
const method = polkadotApi.Binary.fromBytes(utils.mergeUint8([new Uint8Array(location), codec.enc(args)]));
|
|
439
439
|
const blockNumber = await getStorageValue(chain, "System", "Number", []);
|
|
440
440
|
if (blockNumber === null) throw new Error("Block number not found");
|
|
441
441
|
const [account, genesisHash, blockHash] = await Promise.all([
|
|
@@ -485,11 +485,8 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
485
485
|
};
|
|
486
486
|
|
|
487
487
|
const getScaleApi = (connector, hexMetadata, token, hasCheckMetadataHash, signedExtensions, registryTypes) => {
|
|
488
|
-
const
|
|
489
|
-
util.assert(
|
|
490
|
-
const {
|
|
491
|
-
metadata
|
|
492
|
-
} = decoded;
|
|
488
|
+
const metadata = scale.unifyMetadata(scale.decAnyMetadata(hexMetadata));
|
|
489
|
+
util.assert(metadata, `Missing Metadata V14+ for chain ${connector.chainId}`);
|
|
493
490
|
const lookup = scale.getLookupFn(metadata);
|
|
494
491
|
const builder = scale.getDynamicBuilder(lookup);
|
|
495
492
|
const chain = {
|
|
@@ -23,7 +23,7 @@ const getCallDocs = (chain, pallet, method) => {
|
|
|
23
23
|
try {
|
|
24
24
|
const typeIdCalls = chain.metadata.pallets.find(({
|
|
25
25
|
name
|
|
26
|
-
}) => name === pallet)?.calls;
|
|
26
|
+
}) => name === pallet)?.calls?.type;
|
|
27
27
|
if (!typeIdCalls) return null;
|
|
28
28
|
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -375,7 +375,7 @@ const getPayloadWithMetadataHash = (chain, chainInfo, payload) => {
|
|
|
375
375
|
|
|
376
376
|
// TODO do this without PJS / registry => waiting for @polkadot-api/tx-utils
|
|
377
377
|
// const { extra, additionalSigned } = getSignedExtensionValues(payload, metadata)
|
|
378
|
-
// const badExtPayload = mergeUint8(fromHex(payload.method), ...extra, ...additionalSigned)
|
|
378
|
+
// const badExtPayload = mergeUint8([fromHex(payload.method), ...extra, ...additionalSigned])
|
|
379
379
|
|
|
380
380
|
const registry = getTypeRegistry(chain, payload);
|
|
381
381
|
const extPayload = registry.createType("ExtrinsicPayload", payloadWithMetadataHash);
|
|
@@ -435,7 +435,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
435
435
|
codec,
|
|
436
436
|
location
|
|
437
437
|
} = chain.builder.buildCall(palletName, methodName);
|
|
438
|
-
const method = polkadotApi.Binary.fromBytes(utils.mergeUint8(new Uint8Array(location), codec.enc(args)));
|
|
438
|
+
const method = polkadotApi.Binary.fromBytes(utils.mergeUint8([new Uint8Array(location), codec.enc(args)]));
|
|
439
439
|
const blockNumber = await getStorageValue(chain, "System", "Number", []);
|
|
440
440
|
if (blockNumber === null) throw new Error("Block number not found");
|
|
441
441
|
const [account, genesisHash, blockHash] = await Promise.all([
|
|
@@ -485,11 +485,8 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
485
485
|
};
|
|
486
486
|
|
|
487
487
|
const getScaleApi = (connector, hexMetadata, token, hasCheckMetadataHash, signedExtensions, registryTypes) => {
|
|
488
|
-
const
|
|
489
|
-
util.assert(
|
|
490
|
-
const {
|
|
491
|
-
metadata
|
|
492
|
-
} = decoded;
|
|
488
|
+
const metadata = scale.unifyMetadata(scale.decAnyMetadata(hexMetadata));
|
|
489
|
+
util.assert(metadata, `Missing Metadata V14+ for chain ${connector.chainId}`);
|
|
493
490
|
const lookup = scale.getLookupFn(metadata);
|
|
494
491
|
const builder = scale.getDynamicBuilder(lookup);
|
|
495
492
|
const chain = {
|
package/dist/talismn-sapi.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert, u8aConcatStrict } from '@polkadot/util';
|
|
2
|
-
import {
|
|
2
|
+
import { unifyMetadata, decAnyMetadata, getLookupFn as getLookupFn$1, getDynamicBuilder } from '@talismn/scale';
|
|
3
3
|
import anylogger from 'anylogger';
|
|
4
4
|
import { Enum, Binary } from 'polkadot-api';
|
|
5
5
|
import { getLookupFn } from '@polkadot-api/metadata-builders';
|
|
@@ -17,7 +17,7 @@ const getCallDocs = (chain, pallet, method) => {
|
|
|
17
17
|
try {
|
|
18
18
|
const typeIdCalls = chain.metadata.pallets.find(({
|
|
19
19
|
name
|
|
20
|
-
}) => name === pallet)?.calls;
|
|
20
|
+
}) => name === pallet)?.calls?.type;
|
|
21
21
|
if (!typeIdCalls) return null;
|
|
22
22
|
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -369,7 +369,7 @@ const getPayloadWithMetadataHash = (chain, chainInfo, payload) => {
|
|
|
369
369
|
|
|
370
370
|
// TODO do this without PJS / registry => waiting for @polkadot-api/tx-utils
|
|
371
371
|
// const { extra, additionalSigned } = getSignedExtensionValues(payload, metadata)
|
|
372
|
-
// const badExtPayload = mergeUint8(fromHex(payload.method), ...extra, ...additionalSigned)
|
|
372
|
+
// const badExtPayload = mergeUint8([fromHex(payload.method), ...extra, ...additionalSigned])
|
|
373
373
|
|
|
374
374
|
const registry = getTypeRegistry(chain, payload);
|
|
375
375
|
const extPayload = registry.createType("ExtrinsicPayload", payloadWithMetadataHash);
|
|
@@ -429,7 +429,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
429
429
|
codec,
|
|
430
430
|
location
|
|
431
431
|
} = chain.builder.buildCall(palletName, methodName);
|
|
432
|
-
const method = Binary.fromBytes(mergeUint8(new Uint8Array(location), codec.enc(args)));
|
|
432
|
+
const method = Binary.fromBytes(mergeUint8([new Uint8Array(location), codec.enc(args)]));
|
|
433
433
|
const blockNumber = await getStorageValue(chain, "System", "Number", []);
|
|
434
434
|
if (blockNumber === null) throw new Error("Block number not found");
|
|
435
435
|
const [account, genesisHash, blockHash] = await Promise.all([
|
|
@@ -479,11 +479,8 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
|
|
|
479
479
|
};
|
|
480
480
|
|
|
481
481
|
const getScaleApi = (connector, hexMetadata, token, hasCheckMetadataHash, signedExtensions, registryTypes) => {
|
|
482
|
-
const
|
|
483
|
-
assert(
|
|
484
|
-
const {
|
|
485
|
-
metadata
|
|
486
|
-
} = decoded;
|
|
482
|
+
const metadata = unifyMetadata(decAnyMetadata(hexMetadata));
|
|
483
|
+
assert(metadata, `Missing Metadata V14+ for chain ${connector.chainId}`);
|
|
487
484
|
const lookup = getLookupFn$1(metadata);
|
|
488
485
|
const builder = getDynamicBuilder(lookup);
|
|
489
486
|
const chain = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@talismn/sapi",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"author": "Talisman",
|
|
5
5
|
"homepage": "https://talisman.xyz",
|
|
6
6
|
"license": "GPL-3.0-or-later",
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
"node": ">=18"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@polkadot-api/merkleize-metadata": "1.1.
|
|
25
|
-
"@polkadot-api/metadata-builders": "0.
|
|
26
|
-
"@polkadot-api/substrate-bindings": "0.
|
|
27
|
-
"@polkadot-api/utils": "0.
|
|
28
|
-
"@polkadot/types": "
|
|
29
|
-
"@polkadot/types-codec": "
|
|
30
|
-
"@polkadot/util": "13.
|
|
24
|
+
"@polkadot-api/merkleize-metadata": "1.1.18",
|
|
25
|
+
"@polkadot-api/metadata-builders": "0.12.2",
|
|
26
|
+
"@polkadot-api/substrate-bindings": "0.14.0",
|
|
27
|
+
"@polkadot-api/utils": "0.2.0",
|
|
28
|
+
"@polkadot/types": "16.1.2",
|
|
29
|
+
"@polkadot/types-codec": "16.1.2",
|
|
30
|
+
"@polkadot/util": "13.5.1",
|
|
31
31
|
"anylogger": "^1.0.11",
|
|
32
|
-
"polkadot-api": "1.
|
|
33
|
-
"@talismn/scale": "0.1.
|
|
32
|
+
"polkadot-api": "1.13.1",
|
|
33
|
+
"@talismn/scale": "0.1.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^29.5.14",
|