@talismn/sapi 0.0.8 → 0.0.10

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.
@@ -3,5 +3,6 @@ import { PayloadSignerConfig } from "../types";
3
3
  import { Chain, ChainInfo } from "./types";
4
4
  export declare const getSignerPayloadJSON: (chain: Chain, palletName: string, methodName: string, args: unknown, signerConfig: PayloadSignerConfig, chainInfo: ChainInfo) => Promise<{
5
5
  payload: SignerPayloadJSON;
6
- txMetadata?: Uint8Array;
6
+ txMetadata: Uint8Array | undefined;
7
+ shortMetadata: `0x${string}` | undefined;
7
8
  }>;
@@ -32,7 +32,8 @@ export declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `
32
32
  }) => Res;
33
33
  getExtrinsicPayload: (pallet: string, method: string, args: unknown, config: PayloadSignerConfig) => Promise<{
34
34
  payload: SignerPayloadJSON;
35
- txMetadata?: Uint8Array;
35
+ txMetadata: Uint8Array | undefined;
36
+ shortMetadata: `0x${string}` | undefined;
36
37
  }>;
37
38
  getFeeEstimate: (payload: SignerPayloadJSON) => Promise<bigint>;
38
39
  getRuntimeCallValue: <T>(apiName: string, method: string, args: unknown[]) => Promise<T>;
@@ -44,24 +44,10 @@ const getCallDocs = (chain, pallet, method) => {
44
44
  };
45
45
 
46
46
  const getConstantValue = (chain, pallet, constant) => {
47
- try {
48
- const storageCodec = chain.builder.buildConstant(pallet, constant);
49
- const encodedValue = chain.metadata.pallets.find(({
50
- name
51
- }) => name === pallet)?.constants.find(({
52
- name
53
- }) => name === constant)?.value;
54
- if (!encodedValue) throw new Error(`Constant ${pallet}.${constant} not found`);
55
- return storageCodec.dec(encodedValue);
56
- } catch (err) {
57
- log.error("Failed to get constant value", {
58
- err,
59
- chainId: chain.connector.chainId,
60
- pallet,
61
- constant
62
- });
63
- throw err;
64
- }
47
+ return scale.getConstantValueFromMetadata({
48
+ builder: chain.builder,
49
+ unifiedMetadata: chain.metadata
50
+ }, pallet, constant);
65
51
  };
66
52
 
67
53
  const getChainInfo = chain => {
@@ -216,7 +202,6 @@ const isApiAvailable = (chain, name, method) => {
216
202
  };
217
203
 
218
204
  const getDryRunCall = async (chain, from, decodedCall) => {
219
- log.log(`[sapi] getDryRun begin: ${Date.now()}`);
220
205
  try {
221
206
  if (!isApiAvailable(chain, "DryRunApi", "dry_run_call")) return {
222
207
  available: false,
@@ -258,8 +243,6 @@ const getDryRunCall = async (chain, from, decodedCall) => {
258
243
  available: false,
259
244
  data: null
260
245
  };
261
- } finally {
262
- log.log(`[sapi] getDryRun end: ${Date.now()}`);
263
246
  }
264
247
  };
265
248
 
@@ -481,6 +464,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
481
464
  payload,
482
465
  txMetadata
483
466
  } = getPayloadWithMetadataHash(chain, chainInfo, basePayload);
467
+ const shortMetadata = txMetadata ? util.u8aToHex(txMetadata) : undefined;
484
468
 
485
469
  // Avail support
486
470
  if (payload.signedExtensions.includes("CheckAppId")) payload.appId = 0;
@@ -490,7 +474,9 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
490
474
  });
491
475
  return {
492
476
  payload,
493
- txMetadata
477
+ txMetadata,
478
+ // TODO remove
479
+ shortMetadata
494
480
  };
495
481
  };
496
482
 
@@ -44,24 +44,10 @@ const getCallDocs = (chain, pallet, method) => {
44
44
  };
45
45
 
46
46
  const getConstantValue = (chain, pallet, constant) => {
47
- try {
48
- const storageCodec = chain.builder.buildConstant(pallet, constant);
49
- const encodedValue = chain.metadata.pallets.find(({
50
- name
51
- }) => name === pallet)?.constants.find(({
52
- name
53
- }) => name === constant)?.value;
54
- if (!encodedValue) throw new Error(`Constant ${pallet}.${constant} not found`);
55
- return storageCodec.dec(encodedValue);
56
- } catch (err) {
57
- log.error("Failed to get constant value", {
58
- err,
59
- chainId: chain.connector.chainId,
60
- pallet,
61
- constant
62
- });
63
- throw err;
64
- }
47
+ return scale.getConstantValueFromMetadata({
48
+ builder: chain.builder,
49
+ unifiedMetadata: chain.metadata
50
+ }, pallet, constant);
65
51
  };
66
52
 
67
53
  const getChainInfo = chain => {
@@ -216,7 +202,6 @@ const isApiAvailable = (chain, name, method) => {
216
202
  };
217
203
 
218
204
  const getDryRunCall = async (chain, from, decodedCall) => {
219
- log.log(`[sapi] getDryRun begin: ${Date.now()}`);
220
205
  try {
221
206
  if (!isApiAvailable(chain, "DryRunApi", "dry_run_call")) return {
222
207
  available: false,
@@ -258,8 +243,6 @@ const getDryRunCall = async (chain, from, decodedCall) => {
258
243
  available: false,
259
244
  data: null
260
245
  };
261
- } finally {
262
- log.log(`[sapi] getDryRun end: ${Date.now()}`);
263
246
  }
264
247
  };
265
248
 
@@ -481,6 +464,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
481
464
  payload,
482
465
  txMetadata
483
466
  } = getPayloadWithMetadataHash(chain, chainInfo, basePayload);
467
+ const shortMetadata = txMetadata ? util.u8aToHex(txMetadata) : undefined;
484
468
 
485
469
  // Avail support
486
470
  if (payload.signedExtensions.includes("CheckAppId")) payload.appId = 0;
@@ -490,7 +474,9 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
490
474
  });
491
475
  return {
492
476
  payload,
493
- txMetadata
477
+ txMetadata,
478
+ // TODO remove
479
+ shortMetadata
494
480
  };
495
481
  };
496
482
 
@@ -1,9 +1,9 @@
1
- import { parseMetadataRpc } from '@talismn/scale';
1
+ import { getConstantValueFromMetadata, parseMetadataRpc } from '@talismn/scale';
2
2
  import anylogger from 'anylogger';
3
3
  import { Enum, Binary } from 'polkadot-api';
4
4
  import { getLookupFn } from '@polkadot-api/metadata-builders';
5
5
  import { toHex, mergeUint8 } from '@polkadot-api/utils';
6
- import { assert, u8aConcatStrict } from '@polkadot/util';
6
+ import { assert, u8aConcatStrict, u8aToHex } from '@polkadot/util';
7
7
  import { TypeRegistry, Metadata } from '@polkadot/types';
8
8
  import { merkleizeMetadata } from '@polkadot-api/merkleize-metadata';
9
9
  import { enhanceEncoder, Bytes, u16 } from '@polkadot-api/substrate-bindings';
@@ -38,24 +38,10 @@ const getCallDocs = (chain, pallet, method) => {
38
38
  };
39
39
 
40
40
  const getConstantValue = (chain, pallet, constant) => {
41
- try {
42
- const storageCodec = chain.builder.buildConstant(pallet, constant);
43
- const encodedValue = chain.metadata.pallets.find(({
44
- name
45
- }) => name === pallet)?.constants.find(({
46
- name
47
- }) => name === constant)?.value;
48
- if (!encodedValue) throw new Error(`Constant ${pallet}.${constant} not found`);
49
- return storageCodec.dec(encodedValue);
50
- } catch (err) {
51
- log.error("Failed to get constant value", {
52
- err,
53
- chainId: chain.connector.chainId,
54
- pallet,
55
- constant
56
- });
57
- throw err;
58
- }
41
+ return getConstantValueFromMetadata({
42
+ builder: chain.builder,
43
+ unifiedMetadata: chain.metadata
44
+ }, pallet, constant);
59
45
  };
60
46
 
61
47
  const getChainInfo = chain => {
@@ -210,7 +196,6 @@ const isApiAvailable = (chain, name, method) => {
210
196
  };
211
197
 
212
198
  const getDryRunCall = async (chain, from, decodedCall) => {
213
- log.log(`[sapi] getDryRun begin: ${Date.now()}`);
214
199
  try {
215
200
  if (!isApiAvailable(chain, "DryRunApi", "dry_run_call")) return {
216
201
  available: false,
@@ -252,8 +237,6 @@ const getDryRunCall = async (chain, from, decodedCall) => {
252
237
  available: false,
253
238
  data: null
254
239
  };
255
- } finally {
256
- log.log(`[sapi] getDryRun end: ${Date.now()}`);
257
240
  }
258
241
  };
259
242
 
@@ -475,6 +458,7 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
475
458
  payload,
476
459
  txMetadata
477
460
  } = getPayloadWithMetadataHash(chain, chainInfo, basePayload);
461
+ const shortMetadata = txMetadata ? u8aToHex(txMetadata) : undefined;
478
462
 
479
463
  // Avail support
480
464
  if (payload.signedExtensions.includes("CheckAppId")) payload.appId = 0;
@@ -484,7 +468,9 @@ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerC
484
468
  });
485
469
  return {
486
470
  payload,
487
- txMetadata
471
+ txMetadata,
472
+ // TODO remove
473
+ shortMetadata
488
474
  };
489
475
  };
490
476
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talismn/sapi",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "author": "Talisman",
5
5
  "homepage": "https://talisman.xyz",
6
6
  "license": "GPL-3.0-or-later",
@@ -27,7 +27,7 @@
27
27
  "@polkadot-api/utils": "0.2.0",
28
28
  "@polkadot/types": "16.1.2",
29
29
  "@polkadot/types-codec": "16.1.2",
30
- "@polkadot/util": "13.5.1",
30
+ "@polkadot/util": "13.5.3",
31
31
  "anylogger": "^1.0.11",
32
32
  "polkadot-api": "1.13.1",
33
33
  "scale-ts": "^1.6.1",
@@ -39,8 +39,8 @@
39
39
  "jest": "^29.7",
40
40
  "ts-jest": "^29.2.5",
41
41
  "typescript": "^5.6.3",
42
- "@talismn/eslint-config": "0.0.3",
43
- "@talismn/tsconfig": "0.0.2"
42
+ "@talismn/tsconfig": "0.0.2",
43
+ "@talismn/eslint-config": "0.0.3"
44
44
  },
45
45
  "eslintConfig": {
46
46
  "root": true,