polkadot-api 1.6.3 → 1.6.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.
@@ -5,6 +5,7 @@ import { ChargeAssetTxPayment } from './signed-extensions/user/ChargeAssetTxPaym
5
5
  import * as index from './signed-extensions/chain/index.mjs';
6
6
  import { _void } from '@polkadot-api/substrate-bindings';
7
7
  import { empty } from './signed-extensions/utils.mjs';
8
+ import { mapObject } from '@polkadot-api/utils';
8
9
  import { getNonce } from './signed-extensions/chain/CheckNonce.mjs';
9
10
 
10
11
  const empty$ = of({
@@ -37,36 +38,37 @@ const createTx = (chainHead, signer, callData, atBlock, customSignedExtensions,
37
38
  };
38
39
  const mortality = !hinted.mortality ? { period: 64, blockNumber: atBlock.number } : hinted.mortality.mortal ? { period: hinted.mortality.period, blockNumber: atBlock.number } : void 0;
39
40
  return combineLatest(
40
- ctx.lookup.metadata.extrinsic.signedExtensions.map(({ identifier, type, additionalSigned }) => {
41
- if (identifier === "CheckMortality")
42
- return CheckMortality(mortality, signedExtensionsCtx);
43
- if (identifier === "ChargeTransactionPayment")
44
- return ChargeTransactionPayment(hinted.tip ?? 0n);
45
- if (identifier === "ChargeAssetTxPayment")
46
- return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset);
47
- if (identifier === "CheckNonce" && "nonce" in hinted)
48
- return getNonce(hinted.nonce);
49
- const fn = index[identifier];
50
- const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type);
51
- const [additionalSignedEnc] = ctx.dynamicBuilder.buildDefinition(additionalSigned);
52
- return fn ? fn(signedExtensionsCtx) : valueEnc === _void[0] && additionalSignedEnc === _void[0] ? empty$ : identifier in customSignedExtensions ? getEncodedSignExtFromCustom(
53
- customSignedExtensions[identifier],
54
- valueEnc,
55
- additionalSignedEnc
56
- ) : null;
57
- }).filter((x) => !!x)
41
+ Object.fromEntries(
42
+ ctx.lookup.metadata.extrinsic.signedExtensions.map(({ identifier, type, additionalSigned }) => {
43
+ const stream = () => {
44
+ if (identifier === "CheckMortality")
45
+ return CheckMortality(mortality, signedExtensionsCtx);
46
+ if (identifier === "ChargeTransactionPayment")
47
+ return ChargeTransactionPayment(hinted.tip ?? 0n);
48
+ if (identifier === "ChargeAssetTxPayment")
49
+ return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset);
50
+ if (identifier === "CheckNonce" && "nonce" in hinted)
51
+ return getNonce(hinted.nonce);
52
+ const fn = index[identifier];
53
+ const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type);
54
+ const [additionalSignedEnc] = ctx.dynamicBuilder.buildDefinition(additionalSigned);
55
+ return fn ? fn(signedExtensionsCtx) : valueEnc === _void[0] && additionalSignedEnc === _void[0] ? empty$ : identifier in customSignedExtensions ? getEncodedSignExtFromCustom(
56
+ customSignedExtensions[identifier],
57
+ valueEnc,
58
+ additionalSignedEnc
59
+ ) : null;
60
+ };
61
+ return [identifier, stream()];
62
+ }).filter((x) => x[1])
63
+ )
58
64
  ).pipe(
59
65
  mergeMap(
60
66
  (signedExtensions) => signer.signTx(
61
67
  callData,
62
- Object.fromEntries(
63
- ctx.lookup.metadata.extrinsic.signedExtensions.map(
64
- ({ identifier }, idx) => [
65
- identifier,
66
- { identifier, ...signedExtensions[idx] }
67
- ]
68
- )
69
- ),
68
+ mapObject(signedExtensions, (v, identifier) => ({
69
+ identifier,
70
+ ...v
71
+ })),
70
72
  ctx.metadataRaw,
71
73
  atBlock.number
72
74
  )
@@ -1 +1 @@
1
- {"version":3,"file":"create-tx.mjs","sources":["../../../src/tx/create-tx.ts"],"sourcesContent":["import { Observable, combineLatest, mergeMap, of, take } from \"rxjs\"\nimport { BlockInfo, ChainHead$ } from \"@polkadot-api/observable-client\"\nimport {\n ChargeAssetTxPayment,\n ChargeTransactionPayment,\n CheckMortality,\n} from \"./signed-extensions/user\"\nimport * as chainSignedExtensions from \"./signed-extensions/chain\"\nimport type { PolkadotSigner } from \"@polkadot-api/polkadot-signer\"\nimport { _void, Encoder } from \"@polkadot-api/substrate-bindings\"\nimport { empty } from \"./signed-extensions/utils\"\nimport { CustomSignedExtensionValues } from \"./types\"\n\ntype HintedSignedExtensions = Partial<{\n tip: bigint\n mortality: { mortal: false } | { mortal: true; period: number }\n asset: Uint8Array\n nonce: number\n}>\n\nconst empty$ = of({\n value: empty,\n additionalSigned: empty,\n})\n\nconst getCustomSignExt = <T extends Record<string, any>>(\n obj: T,\n key: string,\n encoder: Encoder<any>,\n) => {\n if (!(key in obj)) return empty\n const x = obj[key] as any\n return x instanceof Uint8Array ? x : encoder(x)\n}\n\nconst getEncodedSignExtFromCustom = (\n custom: CustomSignedExtensionValues,\n valueEnc: Encoder<any>,\n additionalSignedEnc: Encoder<any>,\n) =>\n of({\n value: getCustomSignExt(custom, \"value\", valueEnc),\n additionalSigned: getCustomSignExt(\n custom,\n \"additionalSigned\",\n additionalSignedEnc,\n ),\n })\n\nexport const createTx: (\n chainHead: ChainHead$,\n signer: PolkadotSigner,\n callData: Uint8Array,\n atBlock: BlockInfo,\n customSignExt: Record<string, CustomSignedExtensionValues>,\n hinted?: HintedSignedExtensions,\n) => Observable<Uint8Array> = (\n chainHead,\n signer,\n callData,\n atBlock,\n customSignedExtensions,\n hinted = {},\n) =>\n chainHead.getRuntimeContext$(atBlock.hash).pipe(\n take(1),\n mergeMap((ctx) => {\n const signedExtensionsCtx = {\n lookupFn: ctx.lookup,\n dynamicBuilder: ctx.dynamicBuilder,\n chainHead: chainHead,\n callData: callData,\n at: atBlock.hash,\n from: signer.publicKey,\n }\n\n const mortality: Parameters<typeof CheckMortality>[0] = !hinted.mortality\n ? { period: 64, blockNumber: atBlock.number }\n : hinted.mortality.mortal\n ? { period: hinted.mortality.period, blockNumber: atBlock.number }\n : undefined // immortal\n\n return combineLatest(\n ctx.lookup.metadata.extrinsic.signedExtensions\n .map(({ identifier, type, additionalSigned }) => {\n if (identifier === \"CheckMortality\")\n return CheckMortality(mortality, signedExtensionsCtx)\n\n if (identifier === \"ChargeTransactionPayment\")\n return ChargeTransactionPayment(hinted.tip ?? 0n)\n\n if (identifier === \"ChargeAssetTxPayment\")\n return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset)\n\n if (identifier === \"CheckNonce\" && \"nonce\" in hinted)\n return chainSignedExtensions.getNonce(hinted.nonce!)\n\n const fn = chainSignedExtensions[identifier as \"CheckGenesis\"]\n const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type)\n const [additionalSignedEnc] =\n ctx.dynamicBuilder.buildDefinition(additionalSigned)\n return fn\n ? fn(signedExtensionsCtx)\n : valueEnc === _void[0] && additionalSignedEnc === _void[0]\n ? empty$\n : identifier in customSignedExtensions\n ? getEncodedSignExtFromCustom(\n customSignedExtensions[identifier],\n valueEnc,\n additionalSignedEnc,\n )\n : null\n })\n .filter((x) => !!x),\n ).pipe(\n mergeMap((signedExtensions) =>\n signer.signTx(\n callData,\n Object.fromEntries(\n ctx.lookup.metadata.extrinsic.signedExtensions.map(\n ({ identifier }, idx) => [\n identifier,\n { identifier, ...signedExtensions[idx] },\n ],\n ),\n ),\n ctx.metadataRaw,\n atBlock.number,\n ),\n ),\n )\n }),\n )\n"],"names":["chainSignedExtensions.getNonce","chainSignedExtensions"],"mappings":";;;;;;;;;AAoBA,MAAM,SAAS,EAAG,CAAA;AAAA,EAChB,KAAO,EAAA,KAAA;AAAA,EACP,gBAAkB,EAAA,KAAA;AACpB,CAAC,CAAA,CAAA;AAED,MAAM,gBAAmB,GAAA,CACvB,GACA,EAAA,GAAA,EACA,OACG,KAAA;AACH,EAAI,IAAA,EAAE,GAAO,IAAA,GAAA,CAAA,EAAa,OAAA,KAAA,CAAA;AAC1B,EAAM,MAAA,CAAA,GAAI,IAAI,GAAG,CAAA,CAAA;AACjB,EAAA,OAAO,CAAa,YAAA,UAAA,GAAa,CAAI,GAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAChD,CAAA,CAAA;AAEA,MAAM,2BAA8B,GAAA,CAClC,MACA,EAAA,QAAA,EACA,wBAEA,EAAG,CAAA;AAAA,EACD,KAAO,EAAA,gBAAA,CAAiB,MAAQ,EAAA,OAAA,EAAS,QAAQ,CAAA;AAAA,EACjD,gBAAkB,EAAA,gBAAA;AAAA,IAChB,MAAA;AAAA,IACA,kBAAA;AAAA,IACA,mBAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAEI,MAAM,QAOiB,GAAA,CAC5B,SACA,EAAA,MAAA,EACA,UACA,OACA,EAAA,sBAAA,EACA,MAAS,GAAA,EAET,KAAA,SAAA,CAAU,kBAAmB,CAAA,OAAA,CAAQ,IAAI,CAAE,CAAA,IAAA;AAAA,EACzC,KAAK,CAAC,CAAA;AAAA,EACN,QAAA,CAAS,CAAC,GAAQ,KAAA;AAChB,IAAA,MAAM,mBAAsB,GAAA;AAAA,MAC1B,UAAU,GAAI,CAAA,MAAA;AAAA,MACd,gBAAgB,GAAI,CAAA,cAAA;AAAA,MACpB,SAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAI,OAAQ,CAAA,IAAA;AAAA,MACZ,MAAM,MAAO,CAAA,SAAA;AAAA,KACf,CAAA;AAEA,IAAM,MAAA,SAAA,GAAkD,CAAC,MAAO,CAAA,SAAA,GAC5D,EAAE,MAAQ,EAAA,EAAA,EAAI,WAAa,EAAA,OAAA,CAAQ,MAAO,EAAA,GAC1C,OAAO,SAAU,CAAA,MAAA,GACf,EAAE,MAAQ,EAAA,MAAA,CAAO,UAAU,MAAQ,EAAA,WAAA,EAAa,OAAQ,CAAA,MAAA,EACxD,GAAA,KAAA,CAAA,CAAA;AAEN,IAAO,OAAA,aAAA;AAAA,MACL,GAAA,CAAI,MAAO,CAAA,QAAA,CAAS,SAAU,CAAA,gBAAA,CAC3B,GAAI,CAAA,CAAC,EAAE,UAAA,EAAY,IAAM,EAAA,gBAAA,EAAuB,KAAA;AAC/C,QAAA,IAAI,UAAe,KAAA,gBAAA;AACjB,UAAO,OAAA,cAAA,CAAe,WAAW,mBAAmB,CAAA,CAAA;AAEtD,QAAA,IAAI,UAAe,KAAA,0BAAA;AACjB,UAAO,OAAA,wBAAA,CAAyB,MAAO,CAAA,GAAA,IAAO,EAAE,CAAA,CAAA;AAElD,QAAA,IAAI,UAAe,KAAA,sBAAA;AACjB,UAAA,OAAO,oBAAqB,CAAA,MAAA,CAAO,GAAO,IAAA,EAAA,EAAI,OAAO,KAAK,CAAA,CAAA;AAE5D,QAAI,IAAA,UAAA,KAAe,gBAAgB,OAAW,IAAA,MAAA;AAC5C,UAAO,OAAAA,QAA+B,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA;AAErD,QAAM,MAAA,EAAA,GAAKC,MAAsB,UAA4B,CAAA,CAAA;AAC7D,QAAA,MAAM,CAAC,QAAQ,CAAA,GAAI,GAAI,CAAA,cAAA,CAAe,gBAAgB,IAAI,CAAA,CAAA;AAC1D,QAAA,MAAM,CAAC,mBAAmB,CAAA,GACxB,GAAI,CAAA,cAAA,CAAe,gBAAgB,gBAAgB,CAAA,CAAA;AACrD,QAAA,OAAO,EACH,GAAA,EAAA,CAAG,mBAAmB,CAAA,GACtB,aAAa,KAAM,CAAA,CAAC,CAAK,IAAA,mBAAA,KAAwB,KAAM,CAAA,CAAC,CACtD,GAAA,MAAA,GACA,cAAc,sBACZ,GAAA,2BAAA;AAAA,UACE,uBAAuB,UAAU,CAAA;AAAA,UACjC,QAAA;AAAA,UACA,mBAAA;AAAA,SAEF,GAAA,IAAA,CAAA;AAAA,OACT,CACA,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAC,CAAC,CAAC,CAAA;AAAA,KACpB,CAAA,IAAA;AAAA,MACA,QAAA;AAAA,QAAS,CAAC,qBACR,MAAO,CAAA,MAAA;AAAA,UACL,QAAA;AAAA,UACA,MAAO,CAAA,WAAA;AAAA,YACL,GAAI,CAAA,MAAA,CAAO,QAAS,CAAA,SAAA,CAAU,gBAAiB,CAAA,GAAA;AAAA,cAC7C,CAAC,EAAE,UAAW,EAAA,EAAG,GAAQ,KAAA;AAAA,gBACvB,UAAA;AAAA,gBACA,EAAE,UAAA,EAAY,GAAG,gBAAA,CAAiB,GAAG,CAAE,EAAA;AAAA,eACzC;AAAA,aACF;AAAA,WACF;AAAA,UACA,GAAI,CAAA,WAAA;AAAA,UACJ,OAAQ,CAAA,MAAA;AAAA,SACV;AAAA,OACF;AAAA,KACF,CAAA;AAAA,GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"create-tx.mjs","sources":["../../../src/tx/create-tx.ts"],"sourcesContent":["import { Observable, combineLatest, mergeMap, of, take } from \"rxjs\"\nimport { BlockInfo, ChainHead$ } from \"@polkadot-api/observable-client\"\nimport {\n ChargeAssetTxPayment,\n ChargeTransactionPayment,\n CheckMortality,\n} from \"./signed-extensions/user\"\nimport * as chainSignedExtensions from \"./signed-extensions/chain\"\nimport type { PolkadotSigner } from \"@polkadot-api/polkadot-signer\"\nimport { _void, Encoder } from \"@polkadot-api/substrate-bindings\"\nimport { empty } from \"./signed-extensions/utils\"\nimport { CustomSignedExtensionValues } from \"./types\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\ntype HintedSignedExtensions = Partial<{\n tip: bigint\n mortality: { mortal: false } | { mortal: true; period: number }\n asset: Uint8Array\n nonce: number\n}>\n\nconst empty$ = of({\n value: empty,\n additionalSigned: empty,\n})\n\nconst getCustomSignExt = <T extends Record<string, any>>(\n obj: T,\n key: string,\n encoder: Encoder<any>,\n) => {\n if (!(key in obj)) return empty\n const x = obj[key] as any\n return x instanceof Uint8Array ? x : encoder(x)\n}\n\nconst getEncodedSignExtFromCustom = (\n custom: CustomSignedExtensionValues,\n valueEnc: Encoder<any>,\n additionalSignedEnc: Encoder<any>,\n) =>\n of({\n value: getCustomSignExt(custom, \"value\", valueEnc),\n additionalSigned: getCustomSignExt(\n custom,\n \"additionalSigned\",\n additionalSignedEnc,\n ),\n })\n\nexport const createTx: (\n chainHead: ChainHead$,\n signer: PolkadotSigner,\n callData: Uint8Array,\n atBlock: BlockInfo,\n customSignExt: Record<string, CustomSignedExtensionValues>,\n hinted?: HintedSignedExtensions,\n) => Observable<Uint8Array> = (\n chainHead,\n signer,\n callData,\n atBlock,\n customSignedExtensions,\n hinted = {},\n) =>\n chainHead.getRuntimeContext$(atBlock.hash).pipe(\n take(1),\n mergeMap((ctx) => {\n const signedExtensionsCtx = {\n lookupFn: ctx.lookup,\n dynamicBuilder: ctx.dynamicBuilder,\n chainHead: chainHead,\n callData: callData,\n at: atBlock.hash,\n from: signer.publicKey,\n }\n\n const mortality: Parameters<typeof CheckMortality>[0] = !hinted.mortality\n ? { period: 64, blockNumber: atBlock.number }\n : hinted.mortality.mortal\n ? { period: hinted.mortality.period, blockNumber: atBlock.number }\n : undefined // immortal\n\n return combineLatest(\n Object.fromEntries(\n ctx.lookup.metadata.extrinsic.signedExtensions\n .map(({ identifier, type, additionalSigned }) => {\n const stream = () => {\n if (identifier === \"CheckMortality\")\n return CheckMortality(mortality, signedExtensionsCtx)\n\n if (identifier === \"ChargeTransactionPayment\")\n return ChargeTransactionPayment(hinted.tip ?? 0n)\n\n if (identifier === \"ChargeAssetTxPayment\")\n return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset)\n\n if (identifier === \"CheckNonce\" && \"nonce\" in hinted)\n return chainSignedExtensions.getNonce(hinted.nonce!)\n\n const fn = chainSignedExtensions[identifier as \"CheckGenesis\"]\n const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type)\n const [additionalSignedEnc] =\n ctx.dynamicBuilder.buildDefinition(additionalSigned)\n return fn\n ? fn(signedExtensionsCtx)\n : valueEnc === _void[0] && additionalSignedEnc === _void[0]\n ? empty$\n : identifier in customSignedExtensions\n ? getEncodedSignExtFromCustom(\n customSignedExtensions[identifier],\n valueEnc,\n additionalSignedEnc,\n )\n : null\n }\n\n return [identifier, stream()!] as const\n })\n .filter((x) => x[1]),\n ),\n ).pipe(\n mergeMap((signedExtensions) =>\n signer.signTx(\n callData,\n mapObject(signedExtensions, (v, identifier: string) => ({\n identifier,\n ...v,\n })),\n ctx.metadataRaw,\n atBlock.number,\n ),\n ),\n )\n }),\n )\n"],"names":["chainSignedExtensions.getNonce","chainSignedExtensions"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -790,36 +790,37 @@ const createTx = (chainHead, signer, callData, atBlock, customSignedExtensions,
790
790
  };
791
791
  const mortality = !hinted.mortality ? { period: 64, blockNumber: atBlock.number } : hinted.mortality.mortal ? { period: hinted.mortality.period, blockNumber: atBlock.number } : void 0;
792
792
  return rxjs.combineLatest(
793
- ctx.lookup.metadata.extrinsic.signedExtensions.map(({ identifier, type, additionalSigned }) => {
794
- if (identifier === "CheckMortality")
795
- return CheckMortality(mortality, signedExtensionsCtx);
796
- if (identifier === "ChargeTransactionPayment")
797
- return ChargeTransactionPayment(hinted.tip ?? 0n);
798
- if (identifier === "ChargeAssetTxPayment")
799
- return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset);
800
- if (identifier === "CheckNonce" && "nonce" in hinted)
801
- return getNonce(hinted.nonce);
802
- const fn = chainSignedExtensions[identifier];
803
- const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type);
804
- const [additionalSignedEnc] = ctx.dynamicBuilder.buildDefinition(additionalSigned);
805
- return fn ? fn(signedExtensionsCtx) : valueEnc === substrateBindings._void[0] && additionalSignedEnc === substrateBindings._void[0] ? empty$ : identifier in customSignedExtensions ? getEncodedSignExtFromCustom(
806
- customSignedExtensions[identifier],
807
- valueEnc,
808
- additionalSignedEnc
809
- ) : null;
810
- }).filter((x) => !!x)
793
+ Object.fromEntries(
794
+ ctx.lookup.metadata.extrinsic.signedExtensions.map(({ identifier, type, additionalSigned }) => {
795
+ const stream = () => {
796
+ if (identifier === "CheckMortality")
797
+ return CheckMortality(mortality, signedExtensionsCtx);
798
+ if (identifier === "ChargeTransactionPayment")
799
+ return ChargeTransactionPayment(hinted.tip ?? 0n);
800
+ if (identifier === "ChargeAssetTxPayment")
801
+ return ChargeAssetTxPayment(hinted.tip ?? 0n, hinted.asset);
802
+ if (identifier === "CheckNonce" && "nonce" in hinted)
803
+ return getNonce(hinted.nonce);
804
+ const fn = chainSignedExtensions[identifier];
805
+ const [valueEnc] = ctx.dynamicBuilder.buildDefinition(type);
806
+ const [additionalSignedEnc] = ctx.dynamicBuilder.buildDefinition(additionalSigned);
807
+ return fn ? fn(signedExtensionsCtx) : valueEnc === substrateBindings._void[0] && additionalSignedEnc === substrateBindings._void[0] ? empty$ : identifier in customSignedExtensions ? getEncodedSignExtFromCustom(
808
+ customSignedExtensions[identifier],
809
+ valueEnc,
810
+ additionalSignedEnc
811
+ ) : null;
812
+ };
813
+ return [identifier, stream()];
814
+ }).filter((x) => x[1])
815
+ )
811
816
  ).pipe(
812
817
  rxjs.mergeMap(
813
818
  (signedExtensions) => signer.signTx(
814
819
  callData,
815
- Object.fromEntries(
816
- ctx.lookup.metadata.extrinsic.signedExtensions.map(
817
- ({ identifier }, idx) => [
818
- identifier,
819
- { identifier, ...signedExtensions[idx] }
820
- ]
821
- )
822
- ),
820
+ utils.mapObject(signedExtensions, (v, identifier) => ({
821
+ identifier,
822
+ ...v
823
+ })),
823
824
  ctx.metadataRaw,
824
825
  atBlock.number
825
826
  )