@talismn/sapi 2.0.1 → 2.0.2

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/dist/index.d.mts CHANGED
@@ -5,10 +5,10 @@ type CustomExtensionMappers = NonNullable<Parameters<typeof getPjsTxHelper$1>[1]
5
5
  /**
6
6
  * Encoders for chain-specific signed extensions that `@polkadot-api/tx-utils` doesn't know about.
7
7
  */
8
- declare const CUSTOM_SIGNED_EXTENSIONS: CustomExtensionMappers;
8
+ export declare const CUSTOM_SIGNED_EXTENSIONS: CustomExtensionMappers;
9
9
  //#endregion
10
10
  //#region src/fetchBestMetadata.d.ts
11
- declare const MAX_SUPPORTED_METADATA_VERSION = 15;
11
+ export declare const MAX_SUPPORTED_METADATA_VERSION = 15;
12
12
  type RpcSendFunc = <T>(method: string, params: unknown[], isCacheable?: boolean) => Promise<T>;
13
13
  /**
14
14
  * Fetches the highest supported version of metadata from the chain.
@@ -16,22 +16,12 @@ type RpcSendFunc = <T>(method: string, params: unknown[], isCacheable?: boolean)
16
16
  * @param rpcSend
17
17
  * @returns hex-encoded metadata starting with the magic number
18
18
  */
19
- declare const fetchBestMetadata: (rpcSend: RpcSendFunc, allowLegacyFallback?: boolean) => Promise<`0x${string}`>;
20
- //#endregion
21
- //#region src/helpers/papi.d.ts
22
- declare const toPjsHex: (value: number | bigint, minByteLen?: number) => `0x${string}`;
23
- declare const mortal: import("scale-ts").Encoder<{
24
- period: number;
25
- phase: number;
26
- }>;
27
- declare const isEthereumAddress: (address: string) => boolean;
28
- /** decodes an ss58 or ethereum address into its raw account bytes */
29
- declare const getAddressBytes: (address: string) => Uint8Array;
19
+ export declare const fetchBestMetadata: (rpcSend: RpcSendFunc, allowLegacyFallback?: boolean) => Promise<`0x${string}`>;
30
20
  //#endregion
31
21
  //#region src/pjsInterop.d.ts
32
22
  type HexString = `0x${string}`;
33
23
  /** Same shape as `SignerPayloadJSON` from `@polkadot/types/types` */
34
- interface SignerPayloadJSON {
24
+ export interface SignerPayloadJSON {
35
25
  address: string;
36
26
  assetId?: HexString;
37
27
  blockHash: HexString;
@@ -50,23 +40,23 @@ interface SignerPayloadJSON {
50
40
  withSignedTransaction?: boolean;
51
41
  }
52
42
  /** Same shape as `ExtDef` from `@polkadot/types/extrinsic/signedExtensions/types` */
53
- type ExtDef = Record<string, {
43
+ export type ExtDef = Record<string, {
54
44
  extrinsic: Record<string, string>;
55
45
  payload: Record<string, string>;
56
46
  }>;
57
47
  //#endregion
58
48
  //#region src/types.d.ts
59
- type DecodedCall<Args = any> = {
49
+ export type DecodedCall<Args = any> = {
60
50
  pallet: string;
61
51
  method: string;
62
52
  args: Args;
63
53
  };
64
- type PayloadSignerConfig = {
54
+ export type PayloadSignerConfig = {
65
55
  address: string;
66
56
  tip?: bigint;
67
57
  };
68
- type JsonRpcRequestSend = (method: string, params: unknown[], isCacheable?: boolean) => Promise<unknown>;
69
- type SapiConnectorProps = {
58
+ export type JsonRpcRequestSend = (method: string, params: unknown[], isCacheable?: boolean) => Promise<unknown>;
59
+ export type SapiConnectorProps = {
70
60
  chainId: string;
71
61
  send: JsonRpcRequestSend;
72
62
  submit?: (payload: SignerPayloadJSON, signature?: `0x${string}`, txInfo?: any) => Promise<{
@@ -77,7 +67,7 @@ type SapiConnectorProps = {
77
67
  innerHash?: `0x${string}`;
78
68
  }>;
79
69
  };
80
- type ScaleApiSubmitMode = "default" | "bittensor-mev-shield";
70
+ export type ScaleApiSubmitMode = "default" | "bittensor-mev-shield";
81
71
  //#endregion
82
72
  //#region src/helpers/getSapiConnector.d.ts
83
73
  type SapiConnector = Required<SapiConnectorProps>;
@@ -99,9 +89,23 @@ type Chain = {
99
89
  metadataRpc: `0x${string}`;
100
90
  };
101
91
  //#endregion
92
+ //#region src/helpers/getSignerPayloadJSON.d.ts
93
+ /** validity period of a signed payload in blocks: the mortal era every payload is built with */
94
+ export declare const ERA_PERIOD = 64;
95
+ //#endregion
96
+ //#region src/helpers/papi.d.ts
97
+ export declare const toPjsHex: (value: number | bigint, minByteLen?: number) => `0x${string}`;
98
+ export declare const mortal: import("scale-ts").Encoder<{
99
+ period: number;
100
+ phase: number;
101
+ }>;
102
+ export declare const isEthereumAddress: (address: string) => boolean;
103
+ /** decodes an ss58 or ethereum address into its raw account bytes */
104
+ export declare const getAddressBytes: (address: string) => Uint8Array;
105
+ //#endregion
102
106
  //#region src/sapi.d.ts
103
- type ScaleApi = NonNullable<ReturnType<typeof getScaleApi>>;
104
- declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${string}`, token: {
107
+ export type ScaleApi = NonNullable<ReturnType<typeof getScaleApi>>;
108
+ export declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${string}`, token: {
105
109
  symbol: string;
106
110
  decimals: number;
107
111
  }, hasCheckMetadataHash?: boolean, signedExtensions?: ExtDef, registryTypes?: unknown) => {
@@ -157,5 +161,5 @@ declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${str
157
161
  hasConstant: (pallet: string, constant: string) => boolean;
158
162
  };
159
163
  //#endregion
160
- export { CUSTOM_SIGNED_EXTENSIONS, DecodedCall, ExtDef, JsonRpcRequestSend, MAX_SUPPORTED_METADATA_VERSION, PayloadSignerConfig, SapiConnectorProps, ScaleApi, ScaleApiSubmitMode, SignerPayloadJSON, fetchBestMetadata, getAddressBytes, getPjsTxHelper, getScaleApi, getTxHelper, isEthereumAddress, mortal, toPjsHex };
164
+ export { getPjsTxHelper, getTxHelper };
161
165
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/customSignedExtensions.ts","../src/fetchBestMetadata.ts","../src/helpers/papi.ts","../src/pjsInterop.ts","../src/types.ts","../src/helpers/getSapiConnector.ts","../src/helpers/types.ts","../src/sapi.ts"],"mappings":";;;KAGK,yBAAyB,YAAY,kBAAkB;;;;cAO/C,0BAA0B;;;cCJ1B;KAER,eAAe,GAAG,gBAAgB,mBAAmB,0BAA0B,QAAQ;;;;;;;cAQ/E,oBAAiB,SACnB,aAAW,kCAEnB;;;cCZU,WAAQ,wBAA0B;cAOlC,2BAAM;;;;cAgBN,oBAAiB;;cAGjB,kBAAe,oBAAsB;;;KCjC7C;;UAGY;EACf;EACA,UAAU;EACV,WAAW;EACX,aAAa;EACb,KAAK;EACL,aAAa;EACb,eAAe;EACf;EACA;EACA,OAAO;EACP,aAAa;EACb,KAAK;EACL,oBAAoB;EACpB;EACA;EACA;;;KAIU,SAAS;EAEjB,WAAW;EAAwB,SAAS;;;;KCtBpC,YAAY;EAAgB;EAAgB;EAAgB,MAAM;;KAElE;EACV;EACA;;KAGU,sBACV,gBACA,mBACA,0BACG;KAEO;EACV;EACA,MAAM;EACN,UACE,SAAS,mBACT,2BAEA,iBACG;IAAU;;EACf,gCACE,SAAS,mBAET,iBACG;IAAU;IAAqB;;;KAG1B;;;KC9BA,gBAAgB,SAAS;;;KCGzB;EACV,WAAW;EACX;EACA;IAAS;IAAgB;;EACzB;EACA,mBAAmB;EACnB;EACA,UAAU;EACV,QAAQ;EACR,SAAS;EACT;;;;KCUU,WAAW,YAAY,kBAAkB;cAExC,cAAW,WACX,oBAAkB,4BACH;EACjB;EAAgB;GAAkB,gCACb,mBACX,QAAM;;;;;;;;;;;;gBAkCT,GAAC,gBAAgB,qBAAkB;eAGpC,GAAC,gBAAgB,eAAe,iBAAiB,gBAAa,QAAA;mCAG5C,gBAAgB;;;;;;;8BAGnB,YAAY,aAAW;IACjD,QAAQ;QACT;gCAE6B,YAAY,aAAW,gCAA6B;wCAIlE,gBACA,eACD,QACL,wBAAmB;;;;;4BAGH,sBAAiB;wBAErB,GAAC,iBAAiB,gBAAgB,oBAAiB,QAAA;oBAI9D,mBAAiB,2BACD,kBACT,OACT,uBAAkB;;;;gCAGC;kBAEZ,GAAC,cAAc,aAAe,yBAAoB;;;;;;;;;;;iCAGrC;6BAEJ;gCAEG"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/customSignedExtensions.ts","../src/fetchBestMetadata.ts","../src/pjsInterop.ts","../src/types.ts","../src/helpers/getSapiConnector.ts","../src/helpers/types.ts","../src/helpers/getSignerPayloadJSON.ts","../src/helpers/papi.ts","../src/sapi.ts"],"mappings":";;;KAGK,yBAAyB,YAAY,kBAAkB;;;;qBAO/C,0BAA0B;;;qBCJ1B;KAER,eAAe,GAAG,gBAAgB,mBAAmB,0BAA0B,QAAQ;;;;;;;qBAQ/E,oBAAiB,SACnB,aAAW,kCAEnB;;;KCnBE;;iBAGY;EACf;EACA,UAAU;EACV,WAAW;EACX,aAAa;EACb,KAAK;EACL,aAAa;EACb,eAAe;EACf;EACA;EACA,OAAO;EACP,aAAa;EACb,KAAK;EACL,oBAAoB;EACpB;EACA;EACA;;;YAIU,SAAS;EAEjB,WAAW;EAAwB,SAAS;;;;YCtBpC,YAAY;EAAgB;EAAgB;EAAgB,MAAM;;YAElE;EACV;EACA;;YAGU,sBACV,gBACA,mBACA,0BACG;YAEO;EACV;EACA,MAAM;EACN,UACE,SAAS,mBACT,2BAEA,iBACG;IAAU;;EACf,gCACE,SAAS,mBAET,iBACG;IAAU;IAAqB;;;YAG1B;;;KC9BA,gBAAgB,SAAS;;;KCGzB;EACV,WAAW;EACX;EACA;IAAS;IAAgB;;EACzB;EACA,mBAAmB;EACnB;EACA,UAAU;EACV,QAAQ;EACR,SAAS;EACT;;;;;qBCHW;;;qBCLA,WAAQ,wBAA0B;qBAOlC,2BAAM;EAAkD;EAAe;;qBAgBvE,oBAAiB;;qBAGjB,kBAAe,oBAAsB;;;YCRtC,WAAW,YAAY,kBAAkB;qBAExC,cAAW,WACX,oBAAkB,4BACH;EACjB;EAAgB;GAAkB,gCACb,mBACX,QAAM;;;;;;;;;;;;EAkCT,cAAA,GAAC,gBAAgB,qBAAkB;EAGpC,aAAA,GAAC,gBAAgB,eAAe,iBAAiB,gBAAa,QAAA;EAGlD,iBAAA,gBAAM,gBAAgB;;;;;;;EAGnB,4BAAA,YAAY,aAAW;IACjD,QAAQ;QACT;EAE6B,8BAAA,YAAY,aAAW,gCAA6B;EAIxE,sBAAA,gBAAM,gBACA,eACD,QACL,wBAAmB;;;;;EAGH,iBAAA,SAAA,sBAAiB;EAErB,sBAAA,GAAC,iBAAiB,gBAAgB,oBAAiB,QAAA;EAI9D,SAAA,SAAA,mBAAiB,2BACD,kBACT,OACT,uBAAkB;;;;EAGL,cAAA,gBAAM;EAEZ,gBAAA,GAAC,cAAc,aAAe,yBAAoB;;;;;;;;;;;EAG3C,iBAAA,cAAM;EAEV,WAAA,gBAAM;EAEH,cAAA,gBAAM"}
package/dist/index.d.ts CHANGED
@@ -5,10 +5,10 @@ type CustomExtensionMappers = NonNullable<Parameters<typeof getPjsTxHelper$1>[1]
5
5
  /**
6
6
  * Encoders for chain-specific signed extensions that `@polkadot-api/tx-utils` doesn't know about.
7
7
  */
8
- declare const CUSTOM_SIGNED_EXTENSIONS: CustomExtensionMappers;
8
+ export declare const CUSTOM_SIGNED_EXTENSIONS: CustomExtensionMappers;
9
9
  //#endregion
10
10
  //#region src/fetchBestMetadata.d.ts
11
- declare const MAX_SUPPORTED_METADATA_VERSION = 15;
11
+ export declare const MAX_SUPPORTED_METADATA_VERSION = 15;
12
12
  type RpcSendFunc = <T>(method: string, params: unknown[], isCacheable?: boolean) => Promise<T>;
13
13
  /**
14
14
  * Fetches the highest supported version of metadata from the chain.
@@ -16,22 +16,12 @@ type RpcSendFunc = <T>(method: string, params: unknown[], isCacheable?: boolean)
16
16
  * @param rpcSend
17
17
  * @returns hex-encoded metadata starting with the magic number
18
18
  */
19
- declare const fetchBestMetadata: (rpcSend: RpcSendFunc, allowLegacyFallback?: boolean) => Promise<`0x${string}`>;
20
- //#endregion
21
- //#region src/helpers/papi.d.ts
22
- declare const toPjsHex: (value: number | bigint, minByteLen?: number) => `0x${string}`;
23
- declare const mortal: import("scale-ts").Encoder<{
24
- period: number;
25
- phase: number;
26
- }>;
27
- declare const isEthereumAddress: (address: string) => boolean;
28
- /** decodes an ss58 or ethereum address into its raw account bytes */
29
- declare const getAddressBytes: (address: string) => Uint8Array;
19
+ export declare const fetchBestMetadata: (rpcSend: RpcSendFunc, allowLegacyFallback?: boolean) => Promise<`0x${string}`>;
30
20
  //#endregion
31
21
  //#region src/pjsInterop.d.ts
32
22
  type HexString = `0x${string}`;
33
23
  /** Same shape as `SignerPayloadJSON` from `@polkadot/types/types` */
34
- interface SignerPayloadJSON {
24
+ export interface SignerPayloadJSON {
35
25
  address: string;
36
26
  assetId?: HexString;
37
27
  blockHash: HexString;
@@ -50,23 +40,23 @@ interface SignerPayloadJSON {
50
40
  withSignedTransaction?: boolean;
51
41
  }
52
42
  /** Same shape as `ExtDef` from `@polkadot/types/extrinsic/signedExtensions/types` */
53
- type ExtDef = Record<string, {
43
+ export type ExtDef = Record<string, {
54
44
  extrinsic: Record<string, string>;
55
45
  payload: Record<string, string>;
56
46
  }>;
57
47
  //#endregion
58
48
  //#region src/types.d.ts
59
- type DecodedCall<Args = any> = {
49
+ export type DecodedCall<Args = any> = {
60
50
  pallet: string;
61
51
  method: string;
62
52
  args: Args;
63
53
  };
64
- type PayloadSignerConfig = {
54
+ export type PayloadSignerConfig = {
65
55
  address: string;
66
56
  tip?: bigint;
67
57
  };
68
- type JsonRpcRequestSend = (method: string, params: unknown[], isCacheable?: boolean) => Promise<unknown>;
69
- type SapiConnectorProps = {
58
+ export type JsonRpcRequestSend = (method: string, params: unknown[], isCacheable?: boolean) => Promise<unknown>;
59
+ export type SapiConnectorProps = {
70
60
  chainId: string;
71
61
  send: JsonRpcRequestSend;
72
62
  submit?: (payload: SignerPayloadJSON, signature?: `0x${string}`, txInfo?: any) => Promise<{
@@ -77,7 +67,7 @@ type SapiConnectorProps = {
77
67
  innerHash?: `0x${string}`;
78
68
  }>;
79
69
  };
80
- type ScaleApiSubmitMode = "default" | "bittensor-mev-shield";
70
+ export type ScaleApiSubmitMode = "default" | "bittensor-mev-shield";
81
71
  //#endregion
82
72
  //#region src/helpers/getSapiConnector.d.ts
83
73
  type SapiConnector = Required<SapiConnectorProps>;
@@ -99,9 +89,23 @@ type Chain = {
99
89
  metadataRpc: `0x${string}`;
100
90
  };
101
91
  //#endregion
92
+ //#region src/helpers/getSignerPayloadJSON.d.ts
93
+ /** validity period of a signed payload in blocks: the mortal era every payload is built with */
94
+ export declare const ERA_PERIOD = 64;
95
+ //#endregion
96
+ //#region src/helpers/papi.d.ts
97
+ export declare const toPjsHex: (value: number | bigint, minByteLen?: number) => `0x${string}`;
98
+ export declare const mortal: import("scale-ts").Encoder<{
99
+ period: number;
100
+ phase: number;
101
+ }>;
102
+ export declare const isEthereumAddress: (address: string) => boolean;
103
+ /** decodes an ss58 or ethereum address into its raw account bytes */
104
+ export declare const getAddressBytes: (address: string) => Uint8Array;
105
+ //#endregion
102
106
  //#region src/sapi.d.ts
103
- type ScaleApi = NonNullable<ReturnType<typeof getScaleApi>>;
104
- declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${string}`, token: {
107
+ export type ScaleApi = NonNullable<ReturnType<typeof getScaleApi>>;
108
+ export declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${string}`, token: {
105
109
  symbol: string;
106
110
  decimals: number;
107
111
  }, hasCheckMetadataHash?: boolean, signedExtensions?: ExtDef, registryTypes?: unknown) => {
@@ -157,5 +161,5 @@ declare const getScaleApi: (connector: SapiConnectorProps, hexMetadata: `0x${str
157
161
  hasConstant: (pallet: string, constant: string) => boolean;
158
162
  };
159
163
  //#endregion
160
- export { CUSTOM_SIGNED_EXTENSIONS, DecodedCall, ExtDef, JsonRpcRequestSend, MAX_SUPPORTED_METADATA_VERSION, PayloadSignerConfig, SapiConnectorProps, ScaleApi, ScaleApiSubmitMode, SignerPayloadJSON, fetchBestMetadata, getAddressBytes, getPjsTxHelper, getScaleApi, getTxHelper, isEthereumAddress, mortal, toPjsHex };
164
+ export { getPjsTxHelper, getTxHelper };
161
165
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/customSignedExtensions.ts","../src/fetchBestMetadata.ts","../src/helpers/papi.ts","../src/pjsInterop.ts","../src/types.ts","../src/helpers/getSapiConnector.ts","../src/helpers/types.ts","../src/sapi.ts"],"mappings":";;;KAGK,yBAAyB,YAAY,kBAAkB;;;;cAO/C,0BAA0B;;;cCJ1B;KAER,eAAe,GAAG,gBAAgB,mBAAmB,0BAA0B,QAAQ;;;;;;;cAQ/E,oBAAiB,SACnB,aAAW,kCAEnB;;;cCZU,WAAQ,wBAA0B;cAOlC,2BAAM;;;;cAgBN,oBAAiB;;cAGjB,kBAAe,oBAAsB;;;KCjC7C;;UAGY;EACf;EACA,UAAU;EACV,WAAW;EACX,aAAa;EACb,KAAK;EACL,aAAa;EACb,eAAe;EACf;EACA;EACA,OAAO;EACP,aAAa;EACb,KAAK;EACL,oBAAoB;EACpB;EACA;EACA;;;KAIU,SAAS;EAEjB,WAAW;EAAwB,SAAS;;;;KCtBpC,YAAY;EAAgB;EAAgB;EAAgB,MAAM;;KAElE;EACV;EACA;;KAGU,sBACV,gBACA,mBACA,0BACG;KAEO;EACV;EACA,MAAM;EACN,UACE,SAAS,mBACT,2BAEA,iBACG;IAAU;;EACf,gCACE,SAAS,mBAET,iBACG;IAAU;IAAqB;;;KAG1B;;;KC9BA,gBAAgB,SAAS;;;KCGzB;EACV,WAAW;EACX;EACA;IAAS;IAAgB;;EACzB;EACA,mBAAmB;EACnB;EACA,UAAU;EACV,QAAQ;EACR,SAAS;EACT;;;;KCUU,WAAW,YAAY,kBAAkB;cAExC,cAAW,WACX,oBAAkB,4BACH;EACjB;EAAgB;GAAkB,gCACb,mBACX,QAAM;;;;;;;;;;;;gBAkCT,GAAC,gBAAgB,qBAAkB;eAGpC,GAAC,gBAAgB,eAAe,iBAAiB,gBAAa,QAAA;mCAG5C,gBAAgB;;;;;;;8BAGnB,YAAY,aAAW;IACjD,QAAQ;QACT;gCAE6B,YAAY,aAAW,gCAA6B;wCAIlE,gBACA,eACD,QACL,wBAAmB;;;;;4BAGH,sBAAiB;wBAErB,GAAC,iBAAiB,gBAAgB,oBAAiB,QAAA;oBAI9D,mBAAiB,2BACD,kBACT,OACT,uBAAkB;;;;gCAGC;kBAEZ,GAAC,cAAc,aAAe,yBAAoB;;;;;;;;;;;iCAGrC;6BAEJ;gCAEG"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/customSignedExtensions.ts","../src/fetchBestMetadata.ts","../src/pjsInterop.ts","../src/types.ts","../src/helpers/getSapiConnector.ts","../src/helpers/types.ts","../src/helpers/getSignerPayloadJSON.ts","../src/helpers/papi.ts","../src/sapi.ts"],"mappings":";;;KAGK,yBAAyB,YAAY,kBAAkB;;;;qBAO/C,0BAA0B;;;qBCJ1B;KAER,eAAe,GAAG,gBAAgB,mBAAmB,0BAA0B,QAAQ;;;;;;;qBAQ/E,oBAAiB,SACnB,aAAW,kCAEnB;;;KCnBE;;iBAGY;EACf;EACA,UAAU;EACV,WAAW;EACX,aAAa;EACb,KAAK;EACL,aAAa;EACb,eAAe;EACf;EACA;EACA,OAAO;EACP,aAAa;EACb,KAAK;EACL,oBAAoB;EACpB;EACA;EACA;;;YAIU,SAAS;EAEjB,WAAW;EAAwB,SAAS;;;;YCtBpC,YAAY;EAAgB;EAAgB;EAAgB,MAAM;;YAElE;EACV;EACA;;YAGU,sBACV,gBACA,mBACA,0BACG;YAEO;EACV;EACA,MAAM;EACN,UACE,SAAS,mBACT,2BAEA,iBACG;IAAU;;EACf,gCACE,SAAS,mBAET,iBACG;IAAU;IAAqB;;;YAG1B;;;KC9BA,gBAAgB,SAAS;;;KCGzB;EACV,WAAW;EACX;EACA;IAAS;IAAgB;;EACzB;EACA,mBAAmB;EACnB;EACA,UAAU;EACV,QAAQ;EACR,SAAS;EACT;;;;;qBCHW;;;qBCLA,WAAQ,wBAA0B;qBAOlC,2BAAM;EAAkD;EAAe;;qBAgBvE,oBAAiB;;qBAGjB,kBAAe,oBAAsB;;;YCRtC,WAAW,YAAY,kBAAkB;qBAExC,cAAW,WACX,oBAAkB,4BACH;EACjB;EAAgB;GAAkB,gCACb,mBACX,QAAM;;;;;;;;;;;;EAkCT,cAAA,GAAC,gBAAgB,qBAAkB;EAGpC,aAAA,GAAC,gBAAgB,eAAe,iBAAiB,gBAAa,QAAA;EAGlD,iBAAA,gBAAM,gBAAgB;;;;;;;EAGnB,4BAAA,YAAY,aAAW;IACjD,QAAQ;QACT;EAE6B,8BAAA,YAAY,aAAW,gCAA6B;EAIxE,sBAAA,gBAAM,gBACA,eACD,QACL,wBAAmB;;;;;EAGH,iBAAA,SAAA,sBAAiB;EAErB,sBAAA,GAAC,iBAAiB,gBAAgB,oBAAiB,QAAA;EAI9D,SAAA,SAAA,mBAAiB,2BACD,kBACT,OACT,uBAAkB;;;;EAGL,cAAA,gBAAM;EAEZ,gBAAA,GAAC,cAAc,aAAe,yBAAoB;;;;;;;;;;;EAG3C,iBAAA,cAAM;EAEV,WAAA,gBAAM;EAEH,cAAA,gBAAM"}
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
16
16
  }
17
17
  return to;
18
18
  };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
20
20
  value: mod,
21
21
  enumerable: true
22
22
  }) : target, mod));
@@ -25,12 +25,12 @@ let _polkadot_api_tx_utils = require("@polkadot-api/tx-utils");
25
25
  let _polkadot_api_substrate_bindings = require("@polkadot-api/substrate-bindings");
26
26
  let _polkadot_api_utils = require("@polkadot-api/utils");
27
27
  let scale_ts = require("scale-ts");
28
- let _talismn_scale = require("@talismn/scale");
29
28
  let anylogger = require("anylogger");
30
29
  anylogger = __toESM(anylogger);
30
+ let _polkadot_api_merkleize_metadata = require("@polkadot-api/merkleize-metadata");
31
+ let _talismn_scale = require("@talismn/scale");
31
32
  let _polkadot_api_metadata_builders = require("@polkadot-api/metadata-builders");
32
33
  let _polkadot_api_signers_common = require("@polkadot-api/signers-common");
33
- let _polkadot_api_merkleize_metadata = require("@polkadot-api/merkleize-metadata");
34
34
  //#region src/customSignedExtensions.ts
35
35
  const EMPTY = /* @__PURE__ */ new Uint8Array();
36
36
  /**
@@ -77,6 +77,67 @@ const normalizeMetadata = (metadata) => {
77
77
  return `0x${metadata.slice(magicNumberIndex)}`;
78
78
  };
79
79
  //#endregion
80
+ //#region src/log.ts
81
+ var log_default = (0, anylogger.default)("@talismn/sapi");
82
+ //#endregion
83
+ //#region src/helpers/getPayloadWithMetadataHash.ts
84
+ const getPayloadWithMetadataHash = (chain, chainInfo, payload) => {
85
+ if (!chain.hasCheckMetadataHash || !payload.signedExtensions.includes("CheckMetadataHash")) return {
86
+ payload,
87
+ txMetadata: void 0
88
+ };
89
+ try {
90
+ const { decimals, symbol: tokenSymbol } = chain.token;
91
+ const { base58Prefix, specName, specVersion } = chainInfo;
92
+ const metadataHashInputs = {
93
+ tokenSymbol,
94
+ decimals,
95
+ base58Prefix,
96
+ specName,
97
+ specVersion
98
+ };
99
+ const merkleizedMetadata = (0, _polkadot_api_merkleize_metadata.merkleizeMetadata)(chain.hexMetadata, metadataHashInputs);
100
+ const metadataHash = (0, _polkadot_api_utils.toHex)(merkleizedMetadata.digest());
101
+ log_default.log("metadataHash", metadataHash, metadataHashInputs);
102
+ const payloadWithMetadataHash = {
103
+ ...payload,
104
+ mode: 1,
105
+ metadataHash,
106
+ withSignedTransaction: true
107
+ };
108
+ const { callData, extra, additionalSigned } = (0, _polkadot_api_tx_utils.getPjsTxHelper)(chain.hexMetadata, CUSTOM_SIGNED_EXTENSIONS)(payloadWithMetadataHash);
109
+ const barePayload = (0, _polkadot_api_utils.mergeUint8)([
110
+ callData,
111
+ extra,
112
+ additionalSigned
113
+ ]);
114
+ return {
115
+ payload: payloadWithMetadataHash,
116
+ txMetadata: merkleizedMetadata.getProofForExtrinsicPayload(barePayload)
117
+ };
118
+ } catch (err) {
119
+ log_default.error("Failed to get shortened metadata", { error: err });
120
+ return {
121
+ payload,
122
+ txMetadata: void 0
123
+ };
124
+ }
125
+ };
126
+ //#endregion
127
+ //#region src/helpers/getSendRequestResult.ts
128
+ const getSendRequestResult = (chain, method, params, isCacheable) => {
129
+ return chain.connector.send(method, params, isCacheable);
130
+ };
131
+ //#endregion
132
+ //#region src/helpers/getStorageValue.ts
133
+ const getStorageValue = async (chain, pallet, entry, keys, at) => {
134
+ const storageCodec = chain.builder.buildStorage(pallet, entry);
135
+ const stateKey = storageCodec.keys.enc(...keys);
136
+ const hexValue = await getSendRequestResult(chain, "state_getStorage", [stateKey, at]);
137
+ if (!hexValue) return null;
138
+ return storageCodec.value.dec(hexValue);
139
+ };
140
+ //#endregion
80
141
  //#region src/helpers/papi.ts
81
142
  const toPjsHex = (value, minByteLen) => {
82
143
  let inner = value.toString(16);
@@ -107,8 +168,59 @@ const getAddressBytes = (address) => {
107
168
  return info.publicKey;
108
169
  };
109
170
  //#endregion
110
- //#region src/log.ts
111
- var log_default = (0, anylogger.default)("@talismn/sapi");
171
+ //#region src/helpers/getSignerPayloadJSON.ts
172
+ /** validity period of a signed payload in blocks: the mortal era every payload is built with */
173
+ const ERA_PERIOD = 64;
174
+ const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerConfig, chainInfo) => {
175
+ const { codec, location } = chain.builder.buildCall(palletName, methodName);
176
+ const method = (0, _polkadot_api_utils.mergeUint8)([new Uint8Array(location), codec.enc(args)]);
177
+ let blockHash = await getSendRequestResult(chain, "chain_getFinalizedHead", [], false);
178
+ const [nonce, genesisHash, blockNumberFinalized, blockNumberCurrent] = await Promise.all([
179
+ getSendRequestResult(chain, "system_accountNextIndex", [signerConfig.address], false),
180
+ getStorageValue(chain, "System", "BlockHash", [0]),
181
+ getStorageValue(chain, "System", "Number", [], blockHash),
182
+ getStorageValue(chain, "System", "Number", [])
183
+ ]);
184
+ if (!genesisHash) throw new Error("Genesis hash not found");
185
+ if (!blockHash) throw new Error("Block hash not found");
186
+ let blockNumber = blockNumberFinalized;
187
+ if (blockNumberCurrent - blockNumberFinalized > 32) {
188
+ blockNumber = blockNumberCurrent - 16;
189
+ blockHash = await getStorageValue(chain, "System", "BlockHash", [blockNumber]);
190
+ }
191
+ const era = mortal({
192
+ period: 64,
193
+ phase: blockNumber % 64
194
+ });
195
+ const signedExtensions = (chain.metadata.extrinsic.signedExtensions[0] ?? []).map((ext) => ext.identifier);
196
+ const basePayload = {
197
+ address: signerConfig.address,
198
+ genesisHash,
199
+ blockHash,
200
+ method: _polkadot_api_substrate_bindings.Binary.toHex(method),
201
+ signedExtensions,
202
+ nonce: toPjsHex(nonce, 4),
203
+ specVersion: toPjsHex(chainInfo.specVersion, 4),
204
+ transactionVersion: toPjsHex(chainInfo.transactionVersion, 4),
205
+ blockNumber: toPjsHex(blockNumber, 4),
206
+ era: (0, _polkadot_api_utils.toHex)(era),
207
+ tip: toPjsHex(0, 16),
208
+ assetId: void 0,
209
+ version: 4
210
+ };
211
+ const { payload, txMetadata } = getPayloadWithMetadataHash(chain, chainInfo, basePayload);
212
+ const shortMetadata = txMetadata ? (0, _polkadot_api_utils.toHex)(txMetadata) : void 0;
213
+ if (payload.signedExtensions.includes("CheckAppId")) payload.appId = 0;
214
+ log_default.log("[sapi] payload", {
215
+ newPayload: payload,
216
+ txMetadata
217
+ });
218
+ return {
219
+ payload,
220
+ txMetadata,
221
+ shortMetadata
222
+ };
223
+ };
112
224
  //#endregion
113
225
  //#region src/helpers/getCallDocs.ts
114
226
  const getCallDocs = (chain, pallet, method) => {
@@ -329,11 +441,6 @@ const tryFormatError = (err) => {
329
441
  return "Unknown error";
330
442
  };
331
443
  //#endregion
332
- //#region src/helpers/getSendRequestResult.ts
333
- const getSendRequestResult = (chain, method, params, isCacheable) => {
334
- return chain.connector.send(method, params, isCacheable);
335
- };
336
- //#endregion
337
444
  //#region src/helpers/getRuntimeCallResult.ts
338
445
  const getRuntimeCallResult = async (chain, apiName, method, args) => {
339
446
  const call = chain.builder.buildRuntimeCall(apiName, method);
@@ -383,7 +490,8 @@ const getDryRunCall = async (chain, from, decodedCall) => {
383
490
  //#region src/helpers/getExtrinsicDispatchInfo.ts
384
491
  const getExtrinsicDispatchInfo = async (chain, signedTxBytes) => {
385
492
  const args = (0, _polkadot_api_utils.mergeUint8)([signedTxBytes, _polkadot_api_substrate_bindings.u32.enc(signedTxBytes.length)]);
386
- const bytes = (0, _polkadot_api_utils.fromHex)(await chain.connector.send("state_call", ["TransactionPaymentApi_query_info", (0, _polkadot_api_utils.toHex)(args)], true));
493
+ const result = await chain.connector.send("state_call", ["TransactionPaymentApi_query_info", (0, _polkadot_api_utils.toHex)(args)], true);
494
+ const bytes = (0, _polkadot_api_utils.fromHex)(result);
387
495
  if (bytes.length < 16) throw new Error("Invalid RuntimeDispatchInfo");
388
496
  return { partialFee: _polkadot_api_substrate_bindings.u128.dec(bytes.slice(bytes.length - 16)).toString() };
389
497
  };
@@ -425,110 +533,6 @@ const getSapiConnector = ({ chainId, send, submit, submitWithBittensorMevShield
425
533
  }
426
534
  });
427
535
  //#endregion
428
- //#region src/helpers/getPayloadWithMetadataHash.ts
429
- const getPayloadWithMetadataHash = (chain, chainInfo, payload) => {
430
- if (!chain.hasCheckMetadataHash || !payload.signedExtensions.includes("CheckMetadataHash")) return {
431
- payload,
432
- txMetadata: void 0
433
- };
434
- try {
435
- const { decimals, symbol: tokenSymbol } = chain.token;
436
- const { base58Prefix, specName, specVersion } = chainInfo;
437
- const metadataHashInputs = {
438
- tokenSymbol,
439
- decimals,
440
- base58Prefix,
441
- specName,
442
- specVersion
443
- };
444
- const merkleizedMetadata = (0, _polkadot_api_merkleize_metadata.merkleizeMetadata)(chain.hexMetadata, metadataHashInputs);
445
- const metadataHash = (0, _polkadot_api_utils.toHex)(merkleizedMetadata.digest());
446
- log_default.log("metadataHash", metadataHash, metadataHashInputs);
447
- const payloadWithMetadataHash = {
448
- ...payload,
449
- mode: 1,
450
- metadataHash,
451
- withSignedTransaction: true
452
- };
453
- const { callData, extra, additionalSigned } = (0, _polkadot_api_tx_utils.getPjsTxHelper)(chain.hexMetadata, CUSTOM_SIGNED_EXTENSIONS)(payloadWithMetadataHash);
454
- const barePayload = (0, _polkadot_api_utils.mergeUint8)([
455
- callData,
456
- extra,
457
- additionalSigned
458
- ]);
459
- return {
460
- payload: payloadWithMetadataHash,
461
- txMetadata: merkleizedMetadata.getProofForExtrinsicPayload(barePayload)
462
- };
463
- } catch (err) {
464
- log_default.error("Failed to get shortened metadata", { error: err });
465
- return {
466
- payload,
467
- txMetadata: void 0
468
- };
469
- }
470
- };
471
- //#endregion
472
- //#region src/helpers/getStorageValue.ts
473
- const getStorageValue = async (chain, pallet, entry, keys, at) => {
474
- const storageCodec = chain.builder.buildStorage(pallet, entry);
475
- const hexValue = await getSendRequestResult(chain, "state_getStorage", [storageCodec.keys.enc(...keys), at]);
476
- if (!hexValue) return null;
477
- return storageCodec.value.dec(hexValue);
478
- };
479
- //#endregion
480
- //#region src/helpers/getSignerPayloadJSON.ts
481
- const ERA_PERIOD = 64;
482
- const getSignerPayloadJSON = async (chain, palletName, methodName, args, signerConfig, chainInfo) => {
483
- const { codec, location } = chain.builder.buildCall(palletName, methodName);
484
- const method = (0, _polkadot_api_utils.mergeUint8)([new Uint8Array(location), codec.enc(args)]);
485
- let blockHash = await getSendRequestResult(chain, "chain_getFinalizedHead", [], false);
486
- const [nonce, genesisHash, blockNumberFinalized, blockNumberCurrent] = await Promise.all([
487
- getSendRequestResult(chain, "system_accountNextIndex", [signerConfig.address], false),
488
- getStorageValue(chain, "System", "BlockHash", [0]),
489
- getStorageValue(chain, "System", "Number", [], blockHash),
490
- getStorageValue(chain, "System", "Number", [])
491
- ]);
492
- if (!genesisHash) throw new Error("Genesis hash not found");
493
- if (!blockHash) throw new Error("Block hash not found");
494
- let blockNumber = blockNumberFinalized;
495
- if (blockNumberCurrent - blockNumberFinalized > 32) {
496
- blockNumber = blockNumberCurrent - 16;
497
- blockHash = await getStorageValue(chain, "System", "BlockHash", [blockNumber]);
498
- }
499
- const era = mortal({
500
- period: ERA_PERIOD,
501
- phase: blockNumber % ERA_PERIOD
502
- });
503
- const signedExtensions = (chain.metadata.extrinsic.signedExtensions[0] ?? []).map((ext) => ext.identifier);
504
- const { payload, txMetadata } = getPayloadWithMetadataHash(chain, chainInfo, {
505
- address: signerConfig.address,
506
- genesisHash,
507
- blockHash,
508
- method: _polkadot_api_substrate_bindings.Binary.toHex(method),
509
- signedExtensions,
510
- nonce: toPjsHex(nonce, 4),
511
- specVersion: toPjsHex(chainInfo.specVersion, 4),
512
- transactionVersion: toPjsHex(chainInfo.transactionVersion, 4),
513
- blockNumber: toPjsHex(blockNumber, 4),
514
- era: (0, _polkadot_api_utils.toHex)(era),
515
- tip: toPjsHex(0, 16),
516
- assetId: void 0,
517
- version: 4
518
- });
519
- const shortMetadata = txMetadata ? (0, _polkadot_api_utils.toHex)(txMetadata) : void 0;
520
- if (payload.signedExtensions.includes("CheckAppId")) payload.appId = 0;
521
- log_default.log("[sapi] payload", {
522
- newPayload: payload,
523
- txMetadata
524
- });
525
- return {
526
- payload,
527
- txMetadata,
528
- shortMetadata
529
- };
530
- };
531
- //#endregion
532
536
  //#region src/helpers/hasConstant.ts
533
537
  const hasConstant = (chain, pallet, constant) => {
534
538
  return !!chain.metadata.pallets.find((p) => p.name === pallet)?.constants.some((c) => c.name === constant);
@@ -605,6 +609,7 @@ const getScaleApi = (connector, hexMetadata, token, hasCheckMetadataHash, signed
605
609
  };
606
610
  //#endregion
607
611
  exports.CUSTOM_SIGNED_EXTENSIONS = CUSTOM_SIGNED_EXTENSIONS;
612
+ exports.ERA_PERIOD = ERA_PERIOD;
608
613
  exports.MAX_SUPPORTED_METADATA_VERSION = MAX_SUPPORTED_METADATA_VERSION;
609
614
  exports.fetchBestMetadata = fetchBestMetadata;
610
615
  exports.getAddressBytes = getAddressBytes;