@polkadot-api/substrate-bindings 0.2.0 → 0.4.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/dist/index.d.mts CHANGED
@@ -65,56 +65,59 @@ declare const selfEncoder: <T>(value: () => Encoder<T>) => Encoder<T>;
65
65
  declare const selfDecoder: <T>(value: () => Decoder<T>) => Decoder<T>;
66
66
  declare const Self: <T>(value: () => Codec<T>) => Codec<T>;
67
67
 
68
- type Tuple<T, N extends number> = readonly [T, ...T[]] & {
69
- length: N;
70
- };
71
- type Push<T extends any[], V> = [...T, V];
72
- type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
73
- type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never;
74
- type TuplifyUnion<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
75
- type RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<T, TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0>;
76
- type ExtractEnumValue<T extends {
68
+ type EnumVariant<T extends {
77
69
  type: string;
78
70
  value?: any;
79
- }, K extends string> = T extends {
71
+ }, K extends T["type"]> = T & {
80
72
  type: K;
81
- value: infer R;
82
- } ? R : never;
83
- interface Discriminant<T extends {
73
+ };
74
+ type ExtractEnumValue<T extends {
84
75
  type: string;
85
76
  value?: any;
86
- }> {
87
- is<K extends T["type"]>(this: Enum<T>, type: K): this is Enum<{
77
+ }, K extends string> = EnumVariant<T, K>["value"];
78
+ type ValueArg<V> = undefined extends V ? [value?: V] : [value: V];
79
+ interface Discriminant {
80
+ is<T extends {
81
+ type: string;
82
+ value: any;
83
+ }, K extends T["type"]>(value: T, type: K): value is T & {
88
84
  type: K;
89
- value: ExtractEnumValue<T, K>;
90
- }>;
91
- as<K extends T["type"]>(type: K): ExtractEnumValue<T, K>;
85
+ };
86
+ as<T extends {
87
+ type: string;
88
+ value: any;
89
+ }, K extends T["type"]>(value: T, type: K): ExtractEnumValue<T, K>;
90
+ }
91
+ interface EnumFn extends Discriminant {
92
+ <T extends {
93
+ type: string;
94
+ value: any;
95
+ }, K extends T["type"]>(type: K, ...[value]: ValueArg<ExtractEnumValue<T, K>>): EnumVariant<T, K>;
92
96
  }
97
+ type Enum<T extends {}> = {
98
+ [K in keyof T & string]: {
99
+ type: K;
100
+ value: T[K];
101
+ };
102
+ }[keyof T & string];
103
+ declare const Enum: EnumFn;
104
+ type GetEnum<T extends Enum<any>> = {
105
+ [K in T["type"]]: (...args: ExtractEnumValue<T, K> extends undefined ? [] : [value: ExtractEnumValue<T, K>]) => EnumVariant<T, K>;
106
+ };
93
107
  declare const _Enum: {};
94
- type Enum<T extends {
95
- type: string;
96
- value?: any;
97
- }> = T & Discriminant<T>;
98
- declare const Enum: <T extends {
99
- type: string;
100
- value?: any;
101
- }, Key extends T["type"]>(type: Key, ...args: ExtractEnumValue<T, Key> extends undefined ? [] : [value: ExtractEnumValue<T, Key>]) => Enum<ExtractEnumValue<T, Key> extends undefined ? T : ExtractEnumValue<T, Key> extends never ? T : {
102
- type: Key;
103
- value: ExtractEnumValue<T, Key>;
104
- }>;
108
+
109
+ type Tuple<T, N extends number> = readonly [T, ...T[]] & {
110
+ length: N;
111
+ };
112
+ type Push<T extends any[], V> = [...T, V];
113
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
114
+ type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never;
115
+ type TuplifyUnion<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
116
+ type RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<T, TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0>;
105
117
  declare const Variant: {
106
- <O extends StringRecord<Codec<any>>>(inner: O, indexes?: RestrictedLenTuple<number, O> | undefined): Codec<Enum<{ [K in keyof O]: K extends string ? {
107
- type: K;
108
- value: CodecType<O[K]>;
109
- } : never; }[keyof O]>>;
110
- enc: <O_1 extends StringRecord<Encoder<any>>>(inner: O_1, x?: RestrictedLenTuple<number, O_1> | undefined) => Encoder<Enum<{ [K_1 in keyof O_1]: K_1 extends string ? {
111
- type: K_1;
112
- value: EncoderType<O_1[K_1]>;
113
- } : never; }[keyof O_1]>>;
114
- dec: <O_2 extends StringRecord<Decoder<any>>>(inner: O_2, x?: RestrictedLenTuple<number, O_2> | undefined) => Decoder<Enum<{ [K_2 in keyof O_2]: K_2 extends string ? {
115
- type: K_2;
116
- value: DecoderType<O_2[K_2]>;
117
- } : never; }[keyof O_2]>>;
118
+ <O extends StringRecord<Codec<any>>>(inner: O, indexes?: RestrictedLenTuple<number, O> | undefined): Codec<Enum<{ [K in keyof O]: CodecType<O[K]>; }>>;
119
+ enc: <O_1 extends StringRecord<Encoder<any>>>(inner: O_1, x?: RestrictedLenTuple<number, O_1> | undefined) => Encoder<Enum<{ [K_1 in keyof O_1]: EncoderType<O_1[K_1]>; }>>;
120
+ dec: <O_2 extends StringRecord<Decoder<any>>>(inner: O_2, x?: RestrictedLenTuple<number, O_2> | undefined) => Decoder<Enum<{ [K_2 in keyof O_2]: DecoderType<O_2[K_2]>; }>>;
118
121
  };
119
122
 
120
123
  declare const ethAccount: scale_ts.Codec<string>;
@@ -125,26 +128,19 @@ declare const blockHeader: Codec<{
125
128
  stateRoot: HexString;
126
129
  extrinsicRoot: HexString;
127
130
  digests: Enum<{
128
- type: "consensus";
129
- value: {
131
+ consensus: {
130
132
  engine: string;
131
133
  payload: HexString;
132
134
  };
133
- } | {
134
- type: "seal";
135
- value: {
135
+ seal: {
136
136
  engine: string;
137
137
  payload: HexString;
138
138
  };
139
- } | {
140
- type: "preRuntime";
141
- value: {
139
+ preRuntime: {
142
140
  engine: string;
143
141
  payload: HexString;
144
142
  };
145
- } | {
146
- type: "runtimeUpdated";
147
- value: undefined;
143
+ runtimeUpdated: undefined;
148
144
  }>[];
149
145
  }>;
150
146
  type BlockHeader = CodecType<typeof blockHeader>;
@@ -1149,11 +1145,4 @@ type EventsFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors
1149
1145
  type ErrorsFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors<3, T["pallets"]>>;
1150
1146
  type ConstFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors<4, T["pallets"]>>;
1151
1147
 
1152
- type GetEnum<T extends Enum<{
1153
- type: string;
1154
- value: any;
1155
- }>> = {
1156
- [K in T["type"]]: (...args: ExtractEnumValue<T, K> extends undefined ? [] : [value: ExtractEnumValue<T, K>]) => T;
1157
- };
1158
-
1159
- export { AccountId, type AssetDescriptor, Bin, Binary, type BitSequence, Blake2128, Blake2128Concat, Blake2256, type BlockHeader, type ConstFromDescriptors, type Descriptors, type Discriminant, type EncoderWithHash, Enum, type ErrorsFromDescriptors, type EventsFromDescriptors, type ExtractEnumValue, FixedSizeBinary, type GetEnum, Hex, type HexString, Identity, type PlainDescriptor, type QueryFromDescriptors, type RuntimeDescriptor, type SS58AddressInfo, type SS58String, Self, Storage, type StorageDescriptor, Twox128, Twox256, Twox64Concat, type TxDescriptor, type TxFromDescriptors, type V14, type V14Extrinsic, type V14Lookup, type V15, type V15Extrinsic, Variant, _Enum, bitSequence, blockHeader, char, compactBn, compactNumber, ethAccount, fixedStr, fromBufferToBase58, getSs58AddressInfo, h64, metadata, selfDecoder, selfEncoder, v14, v15 };
1148
+ export { AccountId, type AssetDescriptor, Bin, Binary, type BitSequence, Blake2128, Blake2128Concat, Blake2256, type BlockHeader, type ConstFromDescriptors, type Descriptors, type EncoderWithHash, Enum, type EnumVariant, type ErrorsFromDescriptors, type EventsFromDescriptors, type ExtractEnumValue, FixedSizeBinary, type GetEnum, Hex, type HexString, Identity, type PlainDescriptor, type QueryFromDescriptors, type RuntimeDescriptor, type SS58AddressInfo, type SS58String, Self, Storage, type StorageDescriptor, Twox128, Twox256, Twox64Concat, type TxDescriptor, type TxFromDescriptors, type V14, type V14Extrinsic, type V14Lookup, type V15, type V15Extrinsic, Variant, _Enum, bitSequence, blockHeader, char, compactBn, compactNumber, ethAccount, fixedStr, fromBufferToBase58, getSs58AddressInfo, h64, metadata, selfDecoder, selfEncoder, v14, v15 };
package/dist/index.d.ts CHANGED
@@ -65,56 +65,59 @@ declare const selfEncoder: <T>(value: () => Encoder<T>) => Encoder<T>;
65
65
  declare const selfDecoder: <T>(value: () => Decoder<T>) => Decoder<T>;
66
66
  declare const Self: <T>(value: () => Codec<T>) => Codec<T>;
67
67
 
68
- type Tuple<T, N extends number> = readonly [T, ...T[]] & {
69
- length: N;
70
- };
71
- type Push<T extends any[], V> = [...T, V];
72
- type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
73
- type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never;
74
- type TuplifyUnion<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
75
- type RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<T, TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0>;
76
- type ExtractEnumValue<T extends {
68
+ type EnumVariant<T extends {
77
69
  type: string;
78
70
  value?: any;
79
- }, K extends string> = T extends {
71
+ }, K extends T["type"]> = T & {
80
72
  type: K;
81
- value: infer R;
82
- } ? R : never;
83
- interface Discriminant<T extends {
73
+ };
74
+ type ExtractEnumValue<T extends {
84
75
  type: string;
85
76
  value?: any;
86
- }> {
87
- is<K extends T["type"]>(this: Enum<T>, type: K): this is Enum<{
77
+ }, K extends string> = EnumVariant<T, K>["value"];
78
+ type ValueArg<V> = undefined extends V ? [value?: V] : [value: V];
79
+ interface Discriminant {
80
+ is<T extends {
81
+ type: string;
82
+ value: any;
83
+ }, K extends T["type"]>(value: T, type: K): value is T & {
88
84
  type: K;
89
- value: ExtractEnumValue<T, K>;
90
- }>;
91
- as<K extends T["type"]>(type: K): ExtractEnumValue<T, K>;
85
+ };
86
+ as<T extends {
87
+ type: string;
88
+ value: any;
89
+ }, K extends T["type"]>(value: T, type: K): ExtractEnumValue<T, K>;
90
+ }
91
+ interface EnumFn extends Discriminant {
92
+ <T extends {
93
+ type: string;
94
+ value: any;
95
+ }, K extends T["type"]>(type: K, ...[value]: ValueArg<ExtractEnumValue<T, K>>): EnumVariant<T, K>;
92
96
  }
97
+ type Enum<T extends {}> = {
98
+ [K in keyof T & string]: {
99
+ type: K;
100
+ value: T[K];
101
+ };
102
+ }[keyof T & string];
103
+ declare const Enum: EnumFn;
104
+ type GetEnum<T extends Enum<any>> = {
105
+ [K in T["type"]]: (...args: ExtractEnumValue<T, K> extends undefined ? [] : [value: ExtractEnumValue<T, K>]) => EnumVariant<T, K>;
106
+ };
93
107
  declare const _Enum: {};
94
- type Enum<T extends {
95
- type: string;
96
- value?: any;
97
- }> = T & Discriminant<T>;
98
- declare const Enum: <T extends {
99
- type: string;
100
- value?: any;
101
- }, Key extends T["type"]>(type: Key, ...args: ExtractEnumValue<T, Key> extends undefined ? [] : [value: ExtractEnumValue<T, Key>]) => Enum<ExtractEnumValue<T, Key> extends undefined ? T : ExtractEnumValue<T, Key> extends never ? T : {
102
- type: Key;
103
- value: ExtractEnumValue<T, Key>;
104
- }>;
108
+
109
+ type Tuple<T, N extends number> = readonly [T, ...T[]] & {
110
+ length: N;
111
+ };
112
+ type Push<T extends any[], V> = [...T, V];
113
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
114
+ type LastOf<T> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? R : never;
115
+ type TuplifyUnion<T, L = LastOf<T>, N = [T] extends [never] ? true : false> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
116
+ type RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<T, TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0>;
105
117
  declare const Variant: {
106
- <O extends StringRecord<Codec<any>>>(inner: O, indexes?: RestrictedLenTuple<number, O> | undefined): Codec<Enum<{ [K in keyof O]: K extends string ? {
107
- type: K;
108
- value: CodecType<O[K]>;
109
- } : never; }[keyof O]>>;
110
- enc: <O_1 extends StringRecord<Encoder<any>>>(inner: O_1, x?: RestrictedLenTuple<number, O_1> | undefined) => Encoder<Enum<{ [K_1 in keyof O_1]: K_1 extends string ? {
111
- type: K_1;
112
- value: EncoderType<O_1[K_1]>;
113
- } : never; }[keyof O_1]>>;
114
- dec: <O_2 extends StringRecord<Decoder<any>>>(inner: O_2, x?: RestrictedLenTuple<number, O_2> | undefined) => Decoder<Enum<{ [K_2 in keyof O_2]: K_2 extends string ? {
115
- type: K_2;
116
- value: DecoderType<O_2[K_2]>;
117
- } : never; }[keyof O_2]>>;
118
+ <O extends StringRecord<Codec<any>>>(inner: O, indexes?: RestrictedLenTuple<number, O> | undefined): Codec<Enum<{ [K in keyof O]: CodecType<O[K]>; }>>;
119
+ enc: <O_1 extends StringRecord<Encoder<any>>>(inner: O_1, x?: RestrictedLenTuple<number, O_1> | undefined) => Encoder<Enum<{ [K_1 in keyof O_1]: EncoderType<O_1[K_1]>; }>>;
120
+ dec: <O_2 extends StringRecord<Decoder<any>>>(inner: O_2, x?: RestrictedLenTuple<number, O_2> | undefined) => Decoder<Enum<{ [K_2 in keyof O_2]: DecoderType<O_2[K_2]>; }>>;
118
121
  };
119
122
 
120
123
  declare const ethAccount: scale_ts.Codec<string>;
@@ -125,26 +128,19 @@ declare const blockHeader: Codec<{
125
128
  stateRoot: HexString;
126
129
  extrinsicRoot: HexString;
127
130
  digests: Enum<{
128
- type: "consensus";
129
- value: {
131
+ consensus: {
130
132
  engine: string;
131
133
  payload: HexString;
132
134
  };
133
- } | {
134
- type: "seal";
135
- value: {
135
+ seal: {
136
136
  engine: string;
137
137
  payload: HexString;
138
138
  };
139
- } | {
140
- type: "preRuntime";
141
- value: {
139
+ preRuntime: {
142
140
  engine: string;
143
141
  payload: HexString;
144
142
  };
145
- } | {
146
- type: "runtimeUpdated";
147
- value: undefined;
143
+ runtimeUpdated: undefined;
148
144
  }>[];
149
145
  }>;
150
146
  type BlockHeader = CodecType<typeof blockHeader>;
@@ -1149,11 +1145,4 @@ type EventsFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors
1149
1145
  type ErrorsFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors<3, T["pallets"]>>;
1150
1146
  type ConstFromDescriptors<T extends Descriptors> = ExtractPlain<PickDescriptors<4, T["pallets"]>>;
1151
1147
 
1152
- type GetEnum<T extends Enum<{
1153
- type: string;
1154
- value: any;
1155
- }>> = {
1156
- [K in T["type"]]: (...args: ExtractEnumValue<T, K> extends undefined ? [] : [value: ExtractEnumValue<T, K>]) => T;
1157
- };
1158
-
1159
- export { AccountId, type AssetDescriptor, Bin, Binary, type BitSequence, Blake2128, Blake2128Concat, Blake2256, type BlockHeader, type ConstFromDescriptors, type Descriptors, type Discriminant, type EncoderWithHash, Enum, type ErrorsFromDescriptors, type EventsFromDescriptors, type ExtractEnumValue, FixedSizeBinary, type GetEnum, Hex, type HexString, Identity, type PlainDescriptor, type QueryFromDescriptors, type RuntimeDescriptor, type SS58AddressInfo, type SS58String, Self, Storage, type StorageDescriptor, Twox128, Twox256, Twox64Concat, type TxDescriptor, type TxFromDescriptors, type V14, type V14Extrinsic, type V14Lookup, type V15, type V15Extrinsic, Variant, _Enum, bitSequence, blockHeader, char, compactBn, compactNumber, ethAccount, fixedStr, fromBufferToBase58, getSs58AddressInfo, h64, metadata, selfDecoder, selfEncoder, v14, v15 };
1148
+ export { AccountId, type AssetDescriptor, Bin, Binary, type BitSequence, Blake2128, Blake2128Concat, Blake2256, type BlockHeader, type ConstFromDescriptors, type Descriptors, type EncoderWithHash, Enum, type EnumVariant, type ErrorsFromDescriptors, type EventsFromDescriptors, type ExtractEnumValue, FixedSizeBinary, type GetEnum, Hex, type HexString, Identity, type PlainDescriptor, type QueryFromDescriptors, type RuntimeDescriptor, type SS58AddressInfo, type SS58String, Self, Storage, type StorageDescriptor, Twox128, Twox256, Twox64Concat, type TxDescriptor, type TxFromDescriptors, type V14, type V14Extrinsic, type V14Lookup, type V15, type V15Extrinsic, Variant, _Enum, bitSequence, blockHeader, char, compactBn, compactNumber, ethAccount, fixedStr, fromBufferToBase58, getSs58AddressInfo, h64, metadata, selfDecoder, selfEncoder, v14, v15 };
package/dist/index.js CHANGED
@@ -321,6 +321,26 @@ var Self = (value) => (0, import_scale_ts9.createCodec)(
321
321
  // src/codecs/scale/Variant.ts
322
322
  var import_scale_ts10 = require("scale-ts");
323
323
  var import_utils3 = require("@polkadot-api/utils");
324
+
325
+ // src/types/enum.ts
326
+ var discriminant = {
327
+ is(value, type) {
328
+ return value.type === type;
329
+ },
330
+ as(value, type) {
331
+ if (type !== value.type)
332
+ throw new Error(
333
+ `Enum.as(enum, ${type}) used with actual type ${value.type}`
334
+ );
335
+ return value;
336
+ }
337
+ };
338
+ var Enum = Object.assign((type, value) => {
339
+ return {
340
+ type,
341
+ value
342
+ };
343
+ }, discriminant);
324
344
  var _Enum = new Proxy(
325
345
  {},
326
346
  {
@@ -329,16 +349,8 @@ var _Enum = new Proxy(
329
349
  }
330
350
  }
331
351
  );
332
- var Enum = (_type, _value) => ({
333
- as: (type) => {
334
- if (type !== _type)
335
- throw new Error(`Enum.as(${type}) used with actual type ${_type}`);
336
- return _value;
337
- },
338
- is: (type) => type === _type,
339
- type: _type,
340
- value: _value
341
- });
352
+
353
+ // src/codecs/scale/Variant.ts
342
354
  var VariantEnc = (...args) => {
343
355
  const enc3 = import_scale_ts10.Enum.enc(...args);
344
356
  return (v) => enc3({ tag: v.type, value: v.value });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/codecs/scale/AccountId.ts","../src/utils/ss58-util.ts","../src/codecs/scale/Binary.ts","../src/codecs/scale/bitSequence.ts","../src/codecs/scale/compact.ts","../src/codecs/scale/char.ts","../src/codecs/scale/Hex.ts","../src/codecs/scale/fixed-str.ts","../src/codecs/scale/re-exported.ts","../src/codecs/scale/Self.ts","../src/codecs/scale/Variant.ts","../src/codecs/scale/ethAccount.ts","../src/codecs/blockHeader.ts","../src/codecs/metadata/metadata.ts","../src/codecs/metadata/v15.ts","../src/codecs/metadata/lookup.ts","../src/codecs/metadata/docs.ts","../src/codecs/metadata/pallets.ts","../src/codecs/metadata/runtime-api.ts","../src/codecs/metadata/v14.ts","../src/hashes/blake2.ts","../src/hashes/identity.ts","../src/hashes/twoX.ts","../src/hashes/h64.ts","../src/storage.ts"],"sourcesContent":["export * from \"./codecs\"\nexport * from \"./hashes\"\nexport * from \"./storage\"\nexport * from \"./types\"\nexport * from \"./utils\"\n","import { Bytes, enhanceCodec } from \"scale-ts\"\nimport {\n getSs58AddressInfo,\n SS58String,\n fromBufferToBase58,\n} from \"@/utils/ss58-util\"\n\nfunction fromBase58ToBuffer(nBytes: number, _ss58Format: number) {\n return (address: SS58String) => {\n const info = getSs58AddressInfo(address)\n if (!info.isValid) throw new Error(\"Invalid checksum\")\n const { publicKey } = info\n if (publicKey.length !== nBytes)\n throw new Error(\"Invalid public key length\")\n\n return publicKey\n }\n}\n\nexport const AccountId = (ss58Format: number = 42, nBytes: 32 | 33 = 32) =>\n enhanceCodec(\n Bytes(nBytes),\n fromBase58ToBuffer(nBytes, ss58Format),\n fromBufferToBase58(ss58Format),\n )\n","import { base58 } from \"@scure/base\"\nimport { blake2b } from \"@noble/hashes/blake2b\"\n\nconst SS58_PREFIX = new TextEncoder().encode(\"SS58PRE\")\nconst CHECKSUM_LENGTH = 2\n\nexport type SS58String = string & { __SS58String?: unknown }\nexport type SS58AddressInfo =\n | { isValid: false }\n | { isValid: true; ss58Format: number; publicKey: Uint8Array }\n\nexport const getSs58AddressInfo = (address: SS58String): SS58AddressInfo => {\n try {\n const decoded = base58.decode(address)\n const prefixBytes = decoded.subarray(0, decoded[0] & 0b0100_0000 ? 2 : 1)\n const publicKey = decoded.subarray(\n prefixBytes.length,\n decoded.length - CHECKSUM_LENGTH,\n )\n\n const checksum = decoded.subarray(prefixBytes.length + publicKey.length)\n const expectedChecksum = blake2b(\n Uint8Array.of(...SS58_PREFIX, ...prefixBytes, ...publicKey),\n {\n dkLen: 64,\n },\n ).subarray(0, CHECKSUM_LENGTH)\n\n const isChecksumValid =\n checksum[0] === expectedChecksum[0] && checksum[1] === expectedChecksum[1]\n\n if (!isChecksumValid) return { isValid: false }\n\n return {\n isValid: true,\n ss58Format: prefixBytesToNumber(prefixBytes),\n publicKey: publicKey.slice(),\n }\n } catch (_) {\n return { isValid: false }\n }\n}\n\nconst prefixBytesToNumber = (bytes: Uint8Array) => {\n const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n return dv.byteLength === 1 ? dv.getUint8(0) : dv.getUint16(0)\n}\n\nexport const fromBufferToBase58 = (ss58Format: number) => {\n const prefixBytes =\n ss58Format < 64\n ? Uint8Array.of(ss58Format)\n : Uint8Array.of(\n ((ss58Format & 0b0000_0000_1111_1100) >> 2) | 0b0100_0000,\n (ss58Format >> 8) | ((ss58Format & 0b0000_0000_0000_0011) << 6),\n )\n\n return (publicKey: Uint8Array): SS58String => {\n const checksum = blake2b(\n Uint8Array.of(...SS58_PREFIX, ...prefixBytes, ...publicKey),\n {\n dkLen: 64,\n },\n ).subarray(0, CHECKSUM_LENGTH)\n return base58.encode(\n Uint8Array.of(...prefixBytes, ...publicKey, ...checksum),\n )\n }\n}\n","import { Bytes, Codec, Decoder, Encoder, createCodec } from \"scale-ts\"\nimport { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { HexString } from \"./Hex\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport class Binary {\n #bytes: Uint8Array\n #hex: HexString | null = null\n #str: string | null = null\n\n constructor(data: Uint8Array) {\n this.#bytes = data\n }\n\n asText = () =>\n this.#str === null\n ? (this.#str = textDecoder.decode(this.#bytes))\n : this.#str\n\n asHex = () =>\n this.#hex === null ? (this.#hex = toHex(this.#bytes)) : this.#hex\n\n asBytes = () => this.#bytes\n\n static fromText(input: string): Binary {\n return new Binary(textEncoder.encode(input))\n }\n static fromHex(input: HexString): Binary {\n return new Binary(fromHex(input))\n }\n static fromBytes(input: Uint8Array): Binary {\n return new Binary(input)\n }\n}\n\nexport class FixedSizeBinary<_L extends number> extends Binary {\n constructor(data: Uint8Array) {\n super(data)\n }\n\n static fromArray<L extends number, I extends Array<number> & { length: L }>(\n input: I,\n ) {\n return new FixedSizeBinary<L>(new Uint8Array(input))\n }\n}\n\nconst enc = (nBytes?: number): Encoder<Binary> => {\n const _enc = Bytes.enc(nBytes)\n return (value) => _enc(value.asBytes())\n}\n\nconst dec = (nBytes?: number): Decoder<Binary> => {\n const _dec = Bytes.dec(nBytes)\n return (value) => Binary.fromBytes(_dec(value))\n}\n\nexport const Bin = (nBytes?: number): Codec<Binary> =>\n createCodec(enc(nBytes), dec(nBytes))\n\nBin.enc = enc\nBin.dec = dec\n","import { Bytes, Decoder, Encoder, createCodec, createDecoder } from \"scale-ts\"\nimport { compactNumber } from \"./compact\"\n\nexport interface BitSequence {\n bitsLen: number\n bytes: Uint8Array\n}\n\nconst bitSequenceDecoder: Decoder<BitSequence> = createDecoder((data) => {\n const bitsLen = compactNumber.dec(data)\n\n const bytesLen = Math.ceil(bitsLen / 8)\n const bytes = Bytes(bytesLen).dec(data)\n return { bytes, bitsLen }\n})\n\nconst bitSequenceEncoder: Encoder<BitSequence> = (input) => {\n if (input.bitsLen > input.bytes.length * 8)\n throw new Error(\n `Not enough bytes. (bitsLen:${input.bitsLen}, bytesLen:${input.bytes.length})`,\n )\n\n const lenEncoded = compactNumber.enc(input.bitsLen)\n const result = new Uint8Array(input.bytes.length + lenEncoded.length)\n result.set(lenEncoded, 0)\n result.set(input.bytes, lenEncoded.length)\n return result\n}\n\nexport const bitSequence = createCodec(bitSequenceEncoder, bitSequenceDecoder)\n","import { Codec, compact } from \"scale-ts\"\n\nexport const compactNumber = compact as Codec<number>\nexport const compactBn = compact as Codec<bigint>\n","import { enhanceCodec, u8 } from \"scale-ts\"\n\nexport const char = enhanceCodec(\n u8,\n (str: string) => str.charCodeAt(0),\n String.fromCharCode,\n)\n","import { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { Bytes, Codec, Decoder, Encoder, createCodec } from \"scale-ts\"\n\nexport type HexString = string & { __hexString?: unknown }\n\nconst enc = (nBytes?: number): Encoder<HexString> => {\n const _enc = Bytes.enc(nBytes)\n return (value: string) => _enc(fromHex(value))\n}\n\nconst dec = (nBytes?: number): Decoder<HexString> => {\n const _dec = Bytes.dec(nBytes)\n return (value) => toHex(_dec(value)) as HexString\n}\n\nexport const Hex = (nBytes?: number): Codec<HexString> =>\n createCodec(enc(nBytes), dec(nBytes))\n\nHex.enc = enc\nHex.dec = dec\n","import { Bytes, enhanceCodec } from \"scale-ts\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport const fixedStr = (nBytes: number) =>\n enhanceCodec(\n Bytes(nBytes),\n (str: string) => textEncoder.encode(str),\n (bytes) => textDecoder.decode(bytes),\n )\n","export {\n _void,\n bool,\n compact,\n str,\n u8,\n u16,\n u32,\n u64,\n u128,\n u256,\n i8,\n i16,\n i32,\n i64,\n i128,\n i256,\n Option,\n Result,\n Vector,\n Tuple,\n Struct,\n Bytes,\n enhanceCodec,\n enhanceEncoder,\n enhanceDecoder,\n createCodec,\n createDecoder,\n} from \"scale-ts\"\n\nexport type {\n Encoder,\n Decoder,\n Codec,\n CodecType,\n EncoderType,\n DecoderType,\n StringRecord,\n ResultPayload,\n} from \"scale-ts\"\n","import { Codec, Decoder, Encoder, createCodec, _void } from \"scale-ts\"\n\nexport const selfEncoder = <T>(value: () => Encoder<T>): Encoder<T> => {\n let cache: Encoder<T> = (x) => {\n const encoder = value()\n cache = encoder\n return encoder(x)\n }\n\n return (x) => cache(x)\n}\n\nexport const selfDecoder = <T>(value: () => Decoder<T>): Decoder<T> => {\n let cache: Decoder<T> = (x) => {\n const decoder = value()\n const result = decoder\n cache = decoder\n return result(x)\n }\n\n return (x) => cache(x)\n}\n\nexport const Self = <T>(value: () => Codec<T>): Codec<T> =>\n createCodec(\n selfEncoder(() => value().enc),\n selfDecoder(() => value().dec),\n )\n","import {\n Codec,\n CodecType,\n Decoder,\n DecoderType,\n Encoder,\n EncoderType,\n Enum as ScaleEnum,\n StringRecord,\n createCodec,\n} from \"scale-ts\"\nimport { mapObject } from \"@polkadot-api/utils\"\n\ntype Tuple<T, N extends number> = readonly [T, ...T[]] & { length: N }\n\ntype Push<T extends any[], V> = [...T, V]\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n k: infer I,\n) => void\n ? I\n : never\n\ntype LastOf<T> =\n UnionToIntersection<T extends any ? () => T : never> extends () => infer R\n ? R\n : never\n\ntype TuplifyUnion<\n T,\n L = LastOf<T>,\n N = [T] extends [never] ? true : false,\n> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>\n\ntype RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<\n T,\n TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0\n>\n\nexport type ExtractEnumValue<\n T extends { type: string; value?: any },\n K extends string,\n> = T extends { type: K; value: infer R } ? R : never\n\nexport interface Discriminant<T extends { type: string; value?: any }> {\n is<K extends T[\"type\"]>(\n this: Enum<T>,\n type: K,\n ): this is Enum<{ type: K; value: ExtractEnumValue<T, K> }>\n as<K extends T[\"type\"]>(type: K): ExtractEnumValue<T, K>\n}\n\nexport type Enum<T extends { type: string; value?: any }> = T & Discriminant<T>\n\nexport const _Enum = new Proxy(\n {},\n {\n get(_, prop: string) {\n return (value: string) => (Enum as any)(prop, value)\n },\n },\n)\n\nexport const Enum: <\n T extends { type: string; value?: any },\n Key extends T[\"type\"],\n>(\n type: Key,\n ...args: ExtractEnumValue<T, Key> extends undefined\n ? []\n : [value: ExtractEnumValue<T, Key>]\n) => Enum<\n ExtractEnumValue<T, Key> extends undefined\n ? T\n : ExtractEnumValue<T, Key> extends never\n ? T\n : {\n type: Key\n value: ExtractEnumValue<T, Key>\n }\n> = ((_type: string, _value: any) => ({\n as: (type: string) => {\n if (type !== _type)\n // TODO: fix error\n throw new Error(`Enum.as(${type}) used with actual type ${_type}`)\n return _value\n },\n is: (type: string) => type === _type,\n type: _type,\n value: _value,\n})) as any\n\nconst VariantEnc = <O extends StringRecord<Encoder<any>>>(\n ...args: [inner: O, x?: RestrictedLenTuple<number, O>]\n): Encoder<\n Enum<\n {\n [K in keyof O]: K extends string\n ? { type: K; value: EncoderType<O[K]> }\n : never\n }[keyof O]\n >\n> => {\n const enc = ScaleEnum.enc<O>(...(args as [any, any]))\n return (v) => enc({ tag: v.type, value: v.value })\n}\n\nconst VariantDec = <O extends StringRecord<Decoder<any>>>(\n ...args: [inner: O, x?: RestrictedLenTuple<number, O>]\n): Decoder<\n Enum<\n {\n [K in keyof O]: K extends string\n ? { type: K; value: DecoderType<O[K]> }\n : never\n }[keyof O]\n >\n> => {\n const dec = ScaleEnum.dec<O>(...(args as [any, any]))\n return (v) => {\n const { tag, value } = dec(v)\n return Enum(tag as any, value as any) as any\n }\n}\n\nexport const Variant = <O extends StringRecord<Codec<any>>>(\n inner: O,\n ...args: [indexes?: RestrictedLenTuple<number, O>]\n): Codec<\n Enum<\n {\n [K in keyof O]: K extends string\n ? { type: K; value: CodecType<O[K]> }\n : never\n }[keyof O]\n >\n> =>\n createCodec(\n VariantEnc(\n mapObject(inner, ([encoder]) => encoder) as StringRecord<\n O[keyof O][\"enc\"]\n >,\n ...(args as any[]),\n ) as Encoder<\n Enum<\n {\n [K in keyof O]: K extends string\n ? { type: K; value: CodecType<O[K]> }\n : never\n }[keyof O]\n >\n >,\n VariantDec(\n mapObject(inner, ([, decoder]) => decoder) as StringRecord<\n O[keyof O][\"dec\"]\n >,\n ...(args as any[]),\n ) as Decoder<\n Enum<\n {\n [K in keyof O]: K extends string\n ? { type: K; value: CodecType<O[K]> }\n : never\n }[keyof O]\n >\n >,\n )\n\nVariant.enc = VariantEnc\nVariant.dec = VariantDec\n","import { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { Bytes, createCodec, createDecoder } from \"scale-ts\"\nimport { keccak_256 as keccak } from \"@noble/hashes/sha3\"\n\nconst getFormattedAddress = (hexAddress: string) => {\n const nonChecksum = hexAddress.slice(2)\n const hashedAddress = toHex(keccak(nonChecksum)).slice(2)\n\n const result = new Array(40)\n\n for (let i = 0; i < 40; i++) {\n const checksumVal = parseInt(hashedAddress[i], 16)\n const char = nonChecksum[i]\n result[i] = checksumVal > 7 ? char.toUpperCase() : char\n }\n\n return `0x${result.join(\"\")}`\n}\n\nconst bytes20Dec = Bytes(20)[1]\n\nexport const ethAccount = createCodec<string>(\n (input: string) => {\n const bytes = fromHex(input)\n if (bytes.length !== 20)\n throw new Error(`Invalid length found on EthAddress(${input})`)\n\n const hexAddress = toHex(bytes)\n if (input === hexAddress || input === hexAddress.toUpperCase()) return bytes\n\n if (getFormattedAddress(hexAddress) !== input)\n throw new Error(`Invalid checksum found on EthAddress(${input})`)\n\n return bytes\n },\n createDecoder((bytes) => getFormattedAddress(toHex(bytes20Dec(bytes)))),\n)\n","import {\n Bytes,\n CodecType,\n Struct,\n Vector,\n _void,\n enhanceCodec,\n Hex,\n Variant,\n compactNumber,\n} from \"./scale\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst fourChars = enhanceCodec(\n Bytes(4),\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n\nconst diggestVal = Struct({\n engine: fourChars,\n payload: Hex(),\n})\n\nconst diggest = Variant(\n {\n consensus: diggestVal,\n seal: diggestVal,\n preRuntime: diggestVal,\n runtimeUpdated: _void,\n },\n [4, 5, 6, 8],\n)\n\nconst hex32 = Hex(32)\nexport const blockHeader = Struct({\n parentHash: hex32,\n number: compactNumber,\n stateRoot: hex32,\n extrinsicRoot: hex32,\n digests: Vector(diggest),\n})\n\nexport type BlockHeader = CodecType<typeof blockHeader>\n","import { Enum, Struct, u32, Codec, createCodec } from \"scale-ts\"\nimport { v15 } from \"./v15\"\nimport { v14 } from \"./v14\"\n\nconst unsupportedFn = () => {\n throw new Error(\"Unsupported metadata version!\")\n}\n\nconst unsupported = createCodec(\n unsupportedFn,\n unsupportedFn,\n) as unknown as Codec<unknown>\n\nexport const metadata = Struct({\n magicNumber: u32,\n metadata: Enum({\n v0: unsupported,\n v1: unsupported,\n v2: unsupported,\n v3: unsupported,\n v4: unsupported,\n v5: unsupported,\n v6: unsupported,\n v7: unsupported,\n v8: unsupported,\n v9: unsupported,\n v10: unsupported,\n v11: unsupported,\n v12: unsupported,\n v13: unsupported,\n v14,\n v15,\n }),\n})\n","import { CodecType, Struct, Tuple, Vector, str, u8 } from \"scale-ts\"\nimport { lookup } from \"./lookup\"\nimport { v15Pallet } from \"./pallets\"\nimport { Hex, compactNumber as ty } from \"../scale\"\nimport { runtimeApi } from \"./runtime-api\"\nexport type { V14Lookup } from \"./lookup\"\n\nconst extrinsic = Struct({\n version: u8,\n address: ty,\n call: ty,\n signature: ty,\n extra: ty,\n signedExtensions: Vector(\n Struct({\n identifier: str,\n type: ty,\n additionalSigned: ty,\n }),\n ),\n})\nexport type V15Extrinsic = CodecType<typeof extrinsic>\n\nexport const v15 = Struct({\n lookup,\n pallets: Vector(Struct(v15Pallet)),\n extrinsic,\n type: ty,\n apis: Vector(runtimeApi),\n outerEnums: Struct({\n call: ty,\n event: ty,\n error: ty,\n }),\n custom: Vector(Tuple(str, Struct({ type: ty, value: Hex() }))),\n})\nexport type V15 = CodecType<typeof v15>\n","import { compactNumber } from \"../scale/compact\"\nimport {\n CodecType,\n Enum,\n Option,\n Struct,\n Vector,\n _void,\n str,\n u32,\n u8,\n} from \"scale-ts\"\nimport { docs } from \"./docs\"\n\nconst oStr = Option(str)\n\nconst primitive = Enum({\n bool: _void,\n char: _void,\n str: _void,\n u8: _void,\n u16: _void,\n u32: _void,\n u64: _void,\n u128: _void,\n u256: _void,\n i8: _void,\n i16: _void,\n i32: _void,\n i64: _void,\n i128: _void,\n i256: _void,\n})\n\nconst fields = Vector(\n Struct({\n name: oStr,\n type: compactNumber,\n typeName: oStr,\n docs,\n }),\n)\n\nconst arr = Struct({\n len: u32,\n type: compactNumber,\n})\n\nconst bitSequence = Struct({\n bitStoreType: compactNumber,\n bitOrderType: compactNumber,\n})\n\nconst variant = Vector(\n Struct({\n name: str,\n fields,\n index: u8,\n docs,\n }),\n)\n\nconst def = Enum({\n composite: fields,\n variant,\n sequence: compactNumber,\n array: arr,\n tuple: Vector(compactNumber),\n primitive,\n compact: compactNumber,\n bitSequence,\n})\n\nconst param = Struct({\n name: str,\n type: Option(compactNumber),\n})\nconst params = Vector(param)\n\nconst entry = Struct({\n id: compactNumber,\n path: docs,\n params,\n def,\n docs,\n})\n\nexport const lookup = Vector(entry)\nexport type V14Lookup = CodecType<typeof lookup>\n","import { Vector, str } from \"scale-ts\"\n\nexport const docs = Vector(str)\n","import { Hex, compactNumber } from \"@/codecs/scale\"\nimport { Struct, Option, Vector, u8, str, Enum, _void } from \"scale-ts\"\nimport { docs } from \"./docs\"\n\nconst hashType = Enum({\n Blake2128: _void,\n Blake2256: _void,\n Blake2128Concat: _void,\n Twox128: _void,\n Twox256: _void,\n Twox64Concat: _void,\n Identity: _void,\n})\n\nconst hashers = Vector(hashType)\n\nconst storageMap = Struct({\n hashers,\n key: compactNumber,\n value: compactNumber,\n})\n\nconst storageItem = Struct({\n name: str,\n modifier: u8,\n type: Enum({\n plain: compactNumber,\n map: storageMap,\n }),\n fallback: Hex(),\n docs,\n})\n\nconst storage = Option(\n Struct({\n prefix: str,\n items: Vector(storageItem),\n }),\n)\n\nexport const v14Pallet = {\n name: str,\n storage,\n calls: Option(compactNumber),\n events: Option(compactNumber),\n constants: Vector(\n Struct({\n name: str,\n type: compactNumber,\n value: Hex(),\n docs,\n }),\n ),\n errors: Option(compactNumber),\n index: u8,\n}\n\nexport const v15Pallet = {\n ...v14Pallet,\n docs,\n}\n","import { Struct, Vector, str } from \"scale-ts\"\nimport { docs } from \"./docs\"\nimport { compactNumber as ty } from \"../scale\"\n\nexport const runtimeApi = Struct({\n name: str,\n methods: Vector(\n Struct({\n name: str,\n inputs: Vector(\n Struct({\n name: str,\n type: ty,\n }),\n ),\n output: ty,\n docs,\n }),\n ),\n docs,\n})\n","import { CodecType, Struct, Vector, createCodec, str, u8 } from \"scale-ts\"\nimport { lookup } from \"./lookup\"\nimport { compactNumber } from \"../scale\"\nimport { v14Pallet } from \"./pallets\"\nimport { runtimeApi } from \"./runtime-api\"\n\nconst empty = new Uint8Array()\nconst Always = <T>(value: T) =>\n createCodec<T>(\n () => empty,\n () => value,\n )\n\nconst extrinsic = Struct({\n type: compactNumber,\n version: u8,\n signedExtensions: Vector(\n Struct({\n identifier: str,\n type: compactNumber,\n additionalSigned: compactNumber,\n }),\n ),\n})\nexport type V14Extrinsic = CodecType<typeof extrinsic>\n\nexport const v14 = Struct({\n lookup,\n pallets: Vector(Struct({ ...v14Pallet, docs: Always([] as string[]) })),\n extrinsic,\n type: compactNumber,\n apis: Always([] as Array<CodecType<typeof runtimeApi>>),\n})\nexport type V14 = CodecType<typeof v14>\n","import { mergeUint8 } from \"@polkadot-api/utils\"\nimport { blake2b } from \"@noble/hashes/blake2b\"\n\nconst len32 = { dkLen: 32 }\nexport const Blake2256 = (encoded: Uint8Array) => blake2b(encoded, len32)\n\nconst len16 = { dkLen: 16 }\nexport const Blake2128 = (encoded: Uint8Array) => blake2b(encoded, len16)\n\nexport const Blake2128Concat = (encoded: Uint8Array) =>\n mergeUint8(Blake2128(encoded), encoded)\n","export const Identity = (encoded: Uint8Array): Uint8Array => encoded\n","import { mergeUint8 } from \"@polkadot-api/utils\"\nimport { u64 } from \"scale-ts\"\nimport { h64 } from \"./h64\"\n\nexport const Twox128 = (input: Uint8Array): Uint8Array => {\n const result = new Uint8Array(16)\n const dv = new DataView(result.buffer)\n\n dv.setBigUint64(0, h64(input), true)\n dv.setBigUint64(8, h64(input, 1n), true)\n\n return result\n}\n\nexport const Twox256 = (input: Uint8Array): Uint8Array => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n dv.setBigUint64(0, h64(input), true)\n dv.setBigUint64(8, h64(input, 1n), true)\n dv.setBigUint64(16, h64(input, 2n), true)\n dv.setBigUint64(24, h64(input, 3n), true)\n\n return result\n}\n\nexport const Twox64Concat = (encoded: Uint8Array): Uint8Array =>\n mergeUint8(u64.enc(h64(encoded)), encoded)\n","// Adapted implementation based on: https://github.com/pierrec/js-xxhash/blob/7ff5ced282f97dba121109d7013e0fa80360398c/lib/xxhash64.js\n\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n\n// helper functions\nconst bigintFromU16 = (\n v0: number,\n v1: number,\n v2: number,\n v3: number,\n): bigint =>\n new DataView(new Uint16Array([v0, v1, v2, v3]).buffer).getBigUint64(0, true)\n\nconst MASK_64 = 2n ** 64n - 1n\n\nconst rotl = (input: bigint, nBits: bigint) =>\n ((input << nBits) & MASK_64) | (input >> (64n - nBits))\n\nconst multiply = (a: bigint, b: bigint) => (a * b) & MASK_64\n\nconst add = (a: bigint, b: bigint) => (a + b) & MASK_64\n\n// constants\nconst PRIME64_1 = 11400714785074694791n\nconst PRIME64_2 = 14029467366897019727n\nconst PRIME64_3 = 1609587929392839161n\nconst PRIME64_4 = 9650029242287828579n\nconst PRIME64_5 = 2870177450012600261n\n\nexport function h64(input: Uint8Array, seed: bigint = 0n) {\n let v1 = add(add(seed, PRIME64_1), PRIME64_2)\n let v2 = add(seed, PRIME64_2)\n let v3 = seed\n let v4 = seed - PRIME64_1\n let totalLen = input.length\n let memsize = 0\n let memory: Uint8Array | null = null\n\n ;(function update() {\n let p = 0\n let bEnd = p + totalLen\n\n if (!totalLen) return\n\n memory = new Uint8Array(32)\n\n if (totalLen < 32) {\n memory.set(input.subarray(0, totalLen), memsize)\n\n memsize += totalLen\n return\n }\n\n if (p <= bEnd - 32) {\n const limit = bEnd - 32\n\n do {\n let other\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n v1 = multiply(rotl(add(v1, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n\n v2 = multiply(rotl(add(v2, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n\n v3 = multiply(rotl(add(v3, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n v4 = multiply(rotl(add(v4, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n } while (p <= limit)\n }\n\n if (p < bEnd) {\n memory.set(input.subarray(p, bEnd), memsize)\n memsize = bEnd - p\n }\n })()\n\n input = memory || input\n\n let result: bigint\n let p = 0\n\n if (totalLen >= 32) {\n result = rotl(v1, 1n)\n result = add(result, rotl(v2, 7n))\n result = add(result, rotl(v3, 12n))\n result = add(result, rotl(v4, 18n))\n\n v1 = multiply(rotl(multiply(v1, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v1\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v2 = multiply(rotl(multiply(v2, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v2\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v3 = multiply(rotl(multiply(v3, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v3\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v4 = multiply(rotl(multiply(v4, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v4\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n } else {\n result = add(seed, PRIME64_5)\n }\n\n result = add(result, BigInt(totalLen))\n\n while (p <= memsize - 8) {\n let temp = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n temp = multiply(rotl(multiply(temp, PRIME64_2), 31n), PRIME64_1)\n result = add(multiply(rotl(result ^ temp, 27n), PRIME64_1), PRIME64_4)\n p += 8\n }\n\n if (p + 4 <= memsize) {\n let temp = multiply(\n bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n 0,\n 0,\n ),\n PRIME64_1,\n )\n\n result = add(multiply(rotl(result ^ temp, 23n), PRIME64_2), PRIME64_3)\n p += 4\n }\n\n while (p < memsize) {\n const temp = multiply(bigintFromU16(input[p++], 0, 0, 0), PRIME64_5)\n result = multiply(rotl(result ^ temp, 11n), PRIME64_1)\n }\n\n let temp = result >> 33n\n result = multiply(result ^ temp, PRIME64_2)\n\n temp = result >> 29n\n result = multiply(result ^ temp, PRIME64_3)\n\n temp = result >> 32n\n result ^= temp\n\n return result\n}\n","import { mergeUint8, toHex } from \"@polkadot-api/utils\"\nimport { Codec, Decoder } from \"scale-ts\"\nimport { Blake2128Concat, Identity, Twox128, Twox64Concat } from \"./hashes\"\n\nexport type EncoderWithHash<T> = [Codec<T>, (input: Uint8Array) => Uint8Array]\n\nconst textEncoder = new TextEncoder()\n\nexport const Storage = (pallet: string) => {\n const palledEncoded = Twox128(textEncoder.encode(pallet))\n return <T, A extends Array<EncoderWithHash<any>>>(\n name: string,\n dec: Decoder<T>,\n ...encoders: [...A]\n ): {\n enc: (\n ...args: {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n ) => string\n dec: Decoder<T>\n keyDecoder: (value: string) => {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n } => {\n const palletItemEncoded = mergeUint8(\n palledEncoded,\n Twox128(textEncoder.encode(name)),\n )\n\n const palletItemEncodedHex = toHex(palletItemEncoded)\n const bytesToSkip = encoders\n .map((e) => e[1])\n .map((x) => {\n if (x === Identity) return 0\n if (x === Twox64Concat) return 8\n if (x === Blake2128Concat) return 16\n return null\n })\n .filter(Boolean) as Array<number>\n\n const keyDecoder = (\n key: string,\n ): {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n } => {\n if (!key.startsWith(palletItemEncodedHex))\n throw new Error(`key does not match this storage (${pallet}.${name})`)\n\n if (bytesToSkip.length !== encoders.length)\n throw new Error(\"Impossible to decode this key\")\n\n if (encoders.length === 0) return [] as any\n\n const argsKey = key.slice(palletItemEncodedHex.length)\n const result = new Array<any>(encoders.length)\n for (let i = 0, cur = 0; i < bytesToSkip.length; i++) {\n const codec = encoders[i][0]\n cur += bytesToSkip[i]\n result[i] = codec.dec(argsKey.slice(cur * 2))\n cur += codec.enc(result[i]).length\n }\n return result as any\n }\n\n const fns = encoders.map(\n ([{ enc }, hash]) =>\n (val: any) =>\n hash(enc(val)),\n )\n\n const enc = (\n ...args: {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n ): string =>\n toHex(\n mergeUint8(palletItemEncoded, ...args.map((val, idx) => fns[idx](val))),\n )\n\n return {\n enc,\n dec,\n keyDecoder,\n }\n }\n}\n"],"mappings":"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","names":["import_scale_ts","import_scale_ts","import_scale_ts","import_scale_ts","str","import_utils","import_scale_ts","enc","dec","import_scale_ts","textEncoder","textDecoder","str","import_scale_ts","import_scale_ts","import_scale_ts","import_utils","enc","ScaleEnum","dec","import_utils","import_scale_ts","keccak","char","textEncoder","textDecoder","import_scale_ts","import_scale_ts","import_scale_ts","import_scale_ts","bitSequence","import_scale_ts","import_scale_ts","import_scale_ts","extrinsic","import_utils","import_blake2b","import_utils","import_scale_ts","p","temp","import_utils","textEncoder","dec","enc"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/codecs/scale/AccountId.ts","../src/utils/ss58-util.ts","../src/codecs/scale/Binary.ts","../src/codecs/scale/bitSequence.ts","../src/codecs/scale/compact.ts","../src/codecs/scale/char.ts","../src/codecs/scale/Hex.ts","../src/codecs/scale/fixed-str.ts","../src/codecs/scale/re-exported.ts","../src/codecs/scale/Self.ts","../src/codecs/scale/Variant.ts","../src/types/enum.ts","../src/codecs/scale/ethAccount.ts","../src/codecs/blockHeader.ts","../src/codecs/metadata/metadata.ts","../src/codecs/metadata/v15.ts","../src/codecs/metadata/lookup.ts","../src/codecs/metadata/docs.ts","../src/codecs/metadata/pallets.ts","../src/codecs/metadata/runtime-api.ts","../src/codecs/metadata/v14.ts","../src/hashes/blake2.ts","../src/hashes/identity.ts","../src/hashes/twoX.ts","../src/hashes/h64.ts","../src/storage.ts"],"sourcesContent":["export * from \"./codecs\"\nexport * from \"./hashes\"\nexport * from \"./storage\"\nexport * from \"./types\"\nexport * from \"./utils\"\n","import { Bytes, enhanceCodec } from \"scale-ts\"\nimport {\n getSs58AddressInfo,\n SS58String,\n fromBufferToBase58,\n} from \"@/utils/ss58-util\"\n\nfunction fromBase58ToBuffer(nBytes: number, _ss58Format: number) {\n return (address: SS58String) => {\n const info = getSs58AddressInfo(address)\n if (!info.isValid) throw new Error(\"Invalid checksum\")\n const { publicKey } = info\n if (publicKey.length !== nBytes)\n throw new Error(\"Invalid public key length\")\n\n return publicKey\n }\n}\n\nexport const AccountId = (ss58Format: number = 42, nBytes: 32 | 33 = 32) =>\n enhanceCodec(\n Bytes(nBytes),\n fromBase58ToBuffer(nBytes, ss58Format),\n fromBufferToBase58(ss58Format),\n )\n","import { base58 } from \"@scure/base\"\nimport { blake2b } from \"@noble/hashes/blake2b\"\n\nconst SS58_PREFIX = new TextEncoder().encode(\"SS58PRE\")\nconst CHECKSUM_LENGTH = 2\n\nexport type SS58String = string & { __SS58String?: unknown }\nexport type SS58AddressInfo =\n | { isValid: false }\n | { isValid: true; ss58Format: number; publicKey: Uint8Array }\n\nexport const getSs58AddressInfo = (address: SS58String): SS58AddressInfo => {\n try {\n const decoded = base58.decode(address)\n const prefixBytes = decoded.subarray(0, decoded[0] & 0b0100_0000 ? 2 : 1)\n const publicKey = decoded.subarray(\n prefixBytes.length,\n decoded.length - CHECKSUM_LENGTH,\n )\n\n const checksum = decoded.subarray(prefixBytes.length + publicKey.length)\n const expectedChecksum = blake2b(\n Uint8Array.of(...SS58_PREFIX, ...prefixBytes, ...publicKey),\n {\n dkLen: 64,\n },\n ).subarray(0, CHECKSUM_LENGTH)\n\n const isChecksumValid =\n checksum[0] === expectedChecksum[0] && checksum[1] === expectedChecksum[1]\n\n if (!isChecksumValid) return { isValid: false }\n\n return {\n isValid: true,\n ss58Format: prefixBytesToNumber(prefixBytes),\n publicKey: publicKey.slice(),\n }\n } catch (_) {\n return { isValid: false }\n }\n}\n\nconst prefixBytesToNumber = (bytes: Uint8Array) => {\n const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n return dv.byteLength === 1 ? dv.getUint8(0) : dv.getUint16(0)\n}\n\nexport const fromBufferToBase58 = (ss58Format: number) => {\n const prefixBytes =\n ss58Format < 64\n ? Uint8Array.of(ss58Format)\n : Uint8Array.of(\n ((ss58Format & 0b0000_0000_1111_1100) >> 2) | 0b0100_0000,\n (ss58Format >> 8) | ((ss58Format & 0b0000_0000_0000_0011) << 6),\n )\n\n return (publicKey: Uint8Array): SS58String => {\n const checksum = blake2b(\n Uint8Array.of(...SS58_PREFIX, ...prefixBytes, ...publicKey),\n {\n dkLen: 64,\n },\n ).subarray(0, CHECKSUM_LENGTH)\n return base58.encode(\n Uint8Array.of(...prefixBytes, ...publicKey, ...checksum),\n )\n }\n}\n","import { Bytes, Codec, Decoder, Encoder, createCodec } from \"scale-ts\"\nimport { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { HexString } from \"./Hex\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport class Binary {\n #bytes: Uint8Array\n #hex: HexString | null = null\n #str: string | null = null\n\n constructor(data: Uint8Array) {\n this.#bytes = data\n }\n\n asText = () =>\n this.#str === null\n ? (this.#str = textDecoder.decode(this.#bytes))\n : this.#str\n\n asHex = () =>\n this.#hex === null ? (this.#hex = toHex(this.#bytes)) : this.#hex\n\n asBytes = () => this.#bytes\n\n static fromText(input: string): Binary {\n return new Binary(textEncoder.encode(input))\n }\n static fromHex(input: HexString): Binary {\n return new Binary(fromHex(input))\n }\n static fromBytes(input: Uint8Array): Binary {\n return new Binary(input)\n }\n}\n\nexport class FixedSizeBinary<_L extends number> extends Binary {\n constructor(data: Uint8Array) {\n super(data)\n }\n\n static fromArray<L extends number, I extends Array<number> & { length: L }>(\n input: I,\n ) {\n return new FixedSizeBinary<L>(new Uint8Array(input))\n }\n}\n\nconst enc = (nBytes?: number): Encoder<Binary> => {\n const _enc = Bytes.enc(nBytes)\n return (value) => _enc(value.asBytes())\n}\n\nconst dec = (nBytes?: number): Decoder<Binary> => {\n const _dec = Bytes.dec(nBytes)\n return (value) => Binary.fromBytes(_dec(value))\n}\n\nexport const Bin = (nBytes?: number): Codec<Binary> =>\n createCodec(enc(nBytes), dec(nBytes))\n\nBin.enc = enc\nBin.dec = dec\n","import { Bytes, Decoder, Encoder, createCodec, createDecoder } from \"scale-ts\"\nimport { compactNumber } from \"./compact\"\n\nexport interface BitSequence {\n bitsLen: number\n bytes: Uint8Array\n}\n\nconst bitSequenceDecoder: Decoder<BitSequence> = createDecoder((data) => {\n const bitsLen = compactNumber.dec(data)\n\n const bytesLen = Math.ceil(bitsLen / 8)\n const bytes = Bytes(bytesLen).dec(data)\n return { bytes, bitsLen }\n})\n\nconst bitSequenceEncoder: Encoder<BitSequence> = (input) => {\n if (input.bitsLen > input.bytes.length * 8)\n throw new Error(\n `Not enough bytes. (bitsLen:${input.bitsLen}, bytesLen:${input.bytes.length})`,\n )\n\n const lenEncoded = compactNumber.enc(input.bitsLen)\n const result = new Uint8Array(input.bytes.length + lenEncoded.length)\n result.set(lenEncoded, 0)\n result.set(input.bytes, lenEncoded.length)\n return result\n}\n\nexport const bitSequence = createCodec(bitSequenceEncoder, bitSequenceDecoder)\n","import { Codec, compact } from \"scale-ts\"\n\nexport const compactNumber = compact as Codec<number>\nexport const compactBn = compact as Codec<bigint>\n","import { enhanceCodec, u8 } from \"scale-ts\"\n\nexport const char = enhanceCodec(\n u8,\n (str: string) => str.charCodeAt(0),\n String.fromCharCode,\n)\n","import { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { Bytes, Codec, Decoder, Encoder, createCodec } from \"scale-ts\"\n\nexport type HexString = string & { __hexString?: unknown }\n\nconst enc = (nBytes?: number): Encoder<HexString> => {\n const _enc = Bytes.enc(nBytes)\n return (value: string) => _enc(fromHex(value))\n}\n\nconst dec = (nBytes?: number): Decoder<HexString> => {\n const _dec = Bytes.dec(nBytes)\n return (value) => toHex(_dec(value)) as HexString\n}\n\nexport const Hex = (nBytes?: number): Codec<HexString> =>\n createCodec(enc(nBytes), dec(nBytes))\n\nHex.enc = enc\nHex.dec = dec\n","import { Bytes, enhanceCodec } from \"scale-ts\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport const fixedStr = (nBytes: number) =>\n enhanceCodec(\n Bytes(nBytes),\n (str: string) => textEncoder.encode(str),\n (bytes) => textDecoder.decode(bytes),\n )\n","export {\n _void,\n bool,\n compact,\n str,\n u8,\n u16,\n u32,\n u64,\n u128,\n u256,\n i8,\n i16,\n i32,\n i64,\n i128,\n i256,\n Option,\n Result,\n Vector,\n Tuple,\n Struct,\n Bytes,\n enhanceCodec,\n enhanceEncoder,\n enhanceDecoder,\n createCodec,\n createDecoder,\n} from \"scale-ts\"\n\nexport type {\n Encoder,\n Decoder,\n Codec,\n CodecType,\n EncoderType,\n DecoderType,\n StringRecord,\n ResultPayload,\n} from \"scale-ts\"\n","import { Codec, Decoder, Encoder, createCodec, _void } from \"scale-ts\"\n\nexport const selfEncoder = <T>(value: () => Encoder<T>): Encoder<T> => {\n let cache: Encoder<T> = (x) => {\n const encoder = value()\n cache = encoder\n return encoder(x)\n }\n\n return (x) => cache(x)\n}\n\nexport const selfDecoder = <T>(value: () => Decoder<T>): Decoder<T> => {\n let cache: Decoder<T> = (x) => {\n const decoder = value()\n const result = decoder\n cache = decoder\n return result(x)\n }\n\n return (x) => cache(x)\n}\n\nexport const Self = <T>(value: () => Codec<T>): Codec<T> =>\n createCodec(\n selfEncoder(() => value().enc),\n selfDecoder(() => value().dec),\n )\n","import {\n Codec,\n CodecType,\n Decoder,\n DecoderType,\n Encoder,\n EncoderType,\n Enum as ScaleEnum,\n StringRecord,\n createCodec,\n} from \"scale-ts\"\nimport { mapObject } from \"@polkadot-api/utils\"\nimport { Enum } from \"@/types/enum\"\n\ntype Tuple<T, N extends number> = readonly [T, ...T[]] & { length: N }\n\ntype Push<T extends any[], V> = [...T, V]\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n k: infer I,\n) => void\n ? I\n : never\n\ntype LastOf<T> =\n UnionToIntersection<T extends any ? () => T : never> extends () => infer R\n ? R\n : never\n\ntype TuplifyUnion<\n T,\n L = LastOf<T>,\n N = [T] extends [never] ? true : false,\n> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>\n\ntype RestrictedLenTuple<T, O extends StringRecord<any>> = Tuple<\n T,\n TuplifyUnion<keyof O> extends Tuple<any, infer V> ? V : 0\n>\n\nconst VariantEnc = <O extends StringRecord<Encoder<any>>>(\n ...args: [inner: O, x?: RestrictedLenTuple<number, O>]\n): Encoder<\n Enum<{\n [K in keyof O]: EncoderType<O[K]>\n }>\n> => {\n const enc = ScaleEnum.enc<O>(...(args as [any, any]))\n return (v) => enc({ tag: v.type, value: v.value })\n}\n\nconst VariantDec = <O extends StringRecord<Decoder<any>>>(\n ...args: [inner: O, x?: RestrictedLenTuple<number, O>]\n): Decoder<\n Enum<{\n [K in keyof O]: DecoderType<O[K]>\n }>\n> => {\n const dec = ScaleEnum.dec<O>(...(args as [any, any]))\n return (v) => {\n const { tag, value } = dec(v)\n return Enum(tag as any, value as any) as any\n }\n}\n\nexport const Variant = <O extends StringRecord<Codec<any>>>(\n inner: O,\n ...args: [indexes?: RestrictedLenTuple<number, O>]\n): Codec<\n Enum<{\n [K in keyof O]: CodecType<O[K]>\n }>\n> =>\n createCodec(\n VariantEnc(\n mapObject(inner, ([encoder]) => encoder) as StringRecord<\n O[keyof O][\"enc\"]\n >,\n ...(args as any[]),\n ) as Encoder<\n Enum<{\n [K in keyof O]: CodecType<O[K]>\n }>\n >,\n VariantDec(\n mapObject(inner, ([, decoder]) => decoder) as StringRecord<\n O[keyof O][\"dec\"]\n >,\n ...(args as any[]),\n ) as Decoder<\n Enum<{\n [K in keyof O]: CodecType<O[K]>\n }>\n >,\n )\n\nVariant.enc = VariantEnc\nVariant.dec = VariantDec\n","export type Enum<T extends {}> = {\n [K in keyof T & string]: {\n type: K\n value: T[K]\n }\n}[keyof T & string]\n\nexport type EnumVariant<\n T extends { type: string; value?: any },\n K extends T[\"type\"],\n> = T & {\n type: K\n}\n\nexport type ExtractEnumValue<\n T extends { type: string; value?: any },\n K extends string,\n> = EnumVariant<T, K>[\"value\"]\n\ntype ValueArg<V> = undefined extends V ? [value?: V] : [value: V]\n\ninterface Discriminant {\n is<T extends { type: string; value: any }, K extends T[\"type\"]>(\n value: T,\n type: K,\n ): value is T & { type: K }\n as<T extends { type: string; value: any }, K extends T[\"type\"]>(\n value: T,\n type: K,\n ): ExtractEnumValue<T, K>\n}\nconst discriminant: Discriminant = {\n is<T extends { type: string; value: any }, K extends T[\"type\"]>(\n value: T,\n type: K,\n ): value is T & { type: K } {\n return value.type === type\n },\n as(value, type) {\n if (type !== value.type)\n throw new Error(\n `Enum.as(enum, ${type}) used with actual type ${value.type}`,\n )\n return value\n },\n}\ninterface EnumFn extends Discriminant {\n <T extends { type: string; value: any }, K extends T[\"type\"]>(\n type: K,\n ...[value]: ValueArg<ExtractEnumValue<T, K>>\n ): EnumVariant<T, K>\n}\nexport const Enum: EnumFn = Object.assign((type: string, value?: any) => {\n return {\n type,\n value,\n } as any\n}, discriminant)\n\n// well-known enums\nexport type GetEnum<T extends Enum<any>> = {\n [K in T[\"type\"]]: (\n ...args: ExtractEnumValue<T, K> extends undefined\n ? []\n : [value: ExtractEnumValue<T, K>]\n ) => EnumVariant<T, K>\n}\nexport const _Enum = new Proxy(\n {},\n {\n get(_, prop: string) {\n return (value: string) => Enum(prop, value)\n },\n },\n)\n\n// type Bar = Enum<{\n// Kaka: 1\n// Bar: 2\n// }>\n\n// type FooInput = Enum<{\n// foo: \"foo\" | undefined\n// bar: Bar\n// baz: number\n// wtf: boolean\n// }>\n\n// declare function foo(foo: FooInput): void\n// foo(Enum(\"bar\", Enum(\"Bar\", 2)))\n\n// const InputEnum: GetEnum<FooInput> = null as any;\n// InputEnum.bar(Enum('Bar', 2))\n","import { fromHex, toHex } from \"@polkadot-api/utils\"\nimport { Bytes, createCodec, createDecoder } from \"scale-ts\"\nimport { keccak_256 as keccak } from \"@noble/hashes/sha3\"\n\nconst getFormattedAddress = (hexAddress: string) => {\n const nonChecksum = hexAddress.slice(2)\n const hashedAddress = toHex(keccak(nonChecksum)).slice(2)\n\n const result = new Array(40)\n\n for (let i = 0; i < 40; i++) {\n const checksumVal = parseInt(hashedAddress[i], 16)\n const char = nonChecksum[i]\n result[i] = checksumVal > 7 ? char.toUpperCase() : char\n }\n\n return `0x${result.join(\"\")}`\n}\n\nconst bytes20Dec = Bytes(20)[1]\n\nexport const ethAccount = createCodec<string>(\n (input: string) => {\n const bytes = fromHex(input)\n if (bytes.length !== 20)\n throw new Error(`Invalid length found on EthAddress(${input})`)\n\n const hexAddress = toHex(bytes)\n if (input === hexAddress || input === hexAddress.toUpperCase()) return bytes\n\n if (getFormattedAddress(hexAddress) !== input)\n throw new Error(`Invalid checksum found on EthAddress(${input})`)\n\n return bytes\n },\n createDecoder((bytes) => getFormattedAddress(toHex(bytes20Dec(bytes)))),\n)\n","import {\n Bytes,\n CodecType,\n Struct,\n Vector,\n _void,\n enhanceCodec,\n Hex,\n Variant,\n compactNumber,\n} from \"./scale\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst fourChars = enhanceCodec(\n Bytes(4),\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n\nconst diggestVal = Struct({\n engine: fourChars,\n payload: Hex(),\n})\n\nconst diggest = Variant(\n {\n consensus: diggestVal,\n seal: diggestVal,\n preRuntime: diggestVal,\n runtimeUpdated: _void,\n },\n [4, 5, 6, 8],\n)\n\nconst hex32 = Hex(32)\nexport const blockHeader = Struct({\n parentHash: hex32,\n number: compactNumber,\n stateRoot: hex32,\n extrinsicRoot: hex32,\n digests: Vector(diggest),\n})\n\nexport type BlockHeader = CodecType<typeof blockHeader>\n","import { Enum, Struct, u32, Codec, createCodec } from \"scale-ts\"\nimport { v15 } from \"./v15\"\nimport { v14 } from \"./v14\"\n\nconst unsupportedFn = () => {\n throw new Error(\"Unsupported metadata version!\")\n}\n\nconst unsupported = createCodec(\n unsupportedFn,\n unsupportedFn,\n) as unknown as Codec<unknown>\n\nexport const metadata = Struct({\n magicNumber: u32,\n metadata: Enum({\n v0: unsupported,\n v1: unsupported,\n v2: unsupported,\n v3: unsupported,\n v4: unsupported,\n v5: unsupported,\n v6: unsupported,\n v7: unsupported,\n v8: unsupported,\n v9: unsupported,\n v10: unsupported,\n v11: unsupported,\n v12: unsupported,\n v13: unsupported,\n v14,\n v15,\n }),\n})\n","import { CodecType, Struct, Tuple, Vector, str, u8 } from \"scale-ts\"\nimport { lookup } from \"./lookup\"\nimport { v15Pallet } from \"./pallets\"\nimport { Hex, compactNumber as ty } from \"../scale\"\nimport { runtimeApi } from \"./runtime-api\"\nexport type { V14Lookup } from \"./lookup\"\n\nconst extrinsic = Struct({\n version: u8,\n address: ty,\n call: ty,\n signature: ty,\n extra: ty,\n signedExtensions: Vector(\n Struct({\n identifier: str,\n type: ty,\n additionalSigned: ty,\n }),\n ),\n})\nexport type V15Extrinsic = CodecType<typeof extrinsic>\n\nexport const v15 = Struct({\n lookup,\n pallets: Vector(Struct(v15Pallet)),\n extrinsic,\n type: ty,\n apis: Vector(runtimeApi),\n outerEnums: Struct({\n call: ty,\n event: ty,\n error: ty,\n }),\n custom: Vector(Tuple(str, Struct({ type: ty, value: Hex() }))),\n})\nexport type V15 = CodecType<typeof v15>\n","import { compactNumber } from \"../scale/compact\"\nimport {\n CodecType,\n Enum,\n Option,\n Struct,\n Vector,\n _void,\n str,\n u32,\n u8,\n} from \"scale-ts\"\nimport { docs } from \"./docs\"\n\nconst oStr = Option(str)\n\nconst primitive = Enum({\n bool: _void,\n char: _void,\n str: _void,\n u8: _void,\n u16: _void,\n u32: _void,\n u64: _void,\n u128: _void,\n u256: _void,\n i8: _void,\n i16: _void,\n i32: _void,\n i64: _void,\n i128: _void,\n i256: _void,\n})\n\nconst fields = Vector(\n Struct({\n name: oStr,\n type: compactNumber,\n typeName: oStr,\n docs,\n }),\n)\n\nconst arr = Struct({\n len: u32,\n type: compactNumber,\n})\n\nconst bitSequence = Struct({\n bitStoreType: compactNumber,\n bitOrderType: compactNumber,\n})\n\nconst variant = Vector(\n Struct({\n name: str,\n fields,\n index: u8,\n docs,\n }),\n)\n\nconst def = Enum({\n composite: fields,\n variant,\n sequence: compactNumber,\n array: arr,\n tuple: Vector(compactNumber),\n primitive,\n compact: compactNumber,\n bitSequence,\n})\n\nconst param = Struct({\n name: str,\n type: Option(compactNumber),\n})\nconst params = Vector(param)\n\nconst entry = Struct({\n id: compactNumber,\n path: docs,\n params,\n def,\n docs,\n})\n\nexport const lookup = Vector(entry)\nexport type V14Lookup = CodecType<typeof lookup>\n","import { Vector, str } from \"scale-ts\"\n\nexport const docs = Vector(str)\n","import { Hex, compactNumber } from \"@/codecs/scale\"\nimport { Struct, Option, Vector, u8, str, Enum, _void } from \"scale-ts\"\nimport { docs } from \"./docs\"\n\nconst hashType = Enum({\n Blake2128: _void,\n Blake2256: _void,\n Blake2128Concat: _void,\n Twox128: _void,\n Twox256: _void,\n Twox64Concat: _void,\n Identity: _void,\n})\n\nconst hashers = Vector(hashType)\n\nconst storageMap = Struct({\n hashers,\n key: compactNumber,\n value: compactNumber,\n})\n\nconst storageItem = Struct({\n name: str,\n modifier: u8,\n type: Enum({\n plain: compactNumber,\n map: storageMap,\n }),\n fallback: Hex(),\n docs,\n})\n\nconst storage = Option(\n Struct({\n prefix: str,\n items: Vector(storageItem),\n }),\n)\n\nexport const v14Pallet = {\n name: str,\n storage,\n calls: Option(compactNumber),\n events: Option(compactNumber),\n constants: Vector(\n Struct({\n name: str,\n type: compactNumber,\n value: Hex(),\n docs,\n }),\n ),\n errors: Option(compactNumber),\n index: u8,\n}\n\nexport const v15Pallet = {\n ...v14Pallet,\n docs,\n}\n","import { Struct, Vector, str } from \"scale-ts\"\nimport { docs } from \"./docs\"\nimport { compactNumber as ty } from \"../scale\"\n\nexport const runtimeApi = Struct({\n name: str,\n methods: Vector(\n Struct({\n name: str,\n inputs: Vector(\n Struct({\n name: str,\n type: ty,\n }),\n ),\n output: ty,\n docs,\n }),\n ),\n docs,\n})\n","import { CodecType, Struct, Vector, createCodec, str, u8 } from \"scale-ts\"\nimport { lookup } from \"./lookup\"\nimport { compactNumber } from \"../scale\"\nimport { v14Pallet } from \"./pallets\"\nimport { runtimeApi } from \"./runtime-api\"\n\nconst empty = new Uint8Array()\nconst Always = <T>(value: T) =>\n createCodec<T>(\n () => empty,\n () => value,\n )\n\nconst extrinsic = Struct({\n type: compactNumber,\n version: u8,\n signedExtensions: Vector(\n Struct({\n identifier: str,\n type: compactNumber,\n additionalSigned: compactNumber,\n }),\n ),\n})\nexport type V14Extrinsic = CodecType<typeof extrinsic>\n\nexport const v14 = Struct({\n lookup,\n pallets: Vector(Struct({ ...v14Pallet, docs: Always([] as string[]) })),\n extrinsic,\n type: compactNumber,\n apis: Always([] as Array<CodecType<typeof runtimeApi>>),\n})\nexport type V14 = CodecType<typeof v14>\n","import { mergeUint8 } from \"@polkadot-api/utils\"\nimport { blake2b } from \"@noble/hashes/blake2b\"\n\nconst len32 = { dkLen: 32 }\nexport const Blake2256 = (encoded: Uint8Array) => blake2b(encoded, len32)\n\nconst len16 = { dkLen: 16 }\nexport const Blake2128 = (encoded: Uint8Array) => blake2b(encoded, len16)\n\nexport const Blake2128Concat = (encoded: Uint8Array) =>\n mergeUint8(Blake2128(encoded), encoded)\n","export const Identity = (encoded: Uint8Array): Uint8Array => encoded\n","import { mergeUint8 } from \"@polkadot-api/utils\"\nimport { u64 } from \"scale-ts\"\nimport { h64 } from \"./h64\"\n\nexport const Twox128 = (input: Uint8Array): Uint8Array => {\n const result = new Uint8Array(16)\n const dv = new DataView(result.buffer)\n\n dv.setBigUint64(0, h64(input), true)\n dv.setBigUint64(8, h64(input, 1n), true)\n\n return result\n}\n\nexport const Twox256 = (input: Uint8Array): Uint8Array => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n dv.setBigUint64(0, h64(input), true)\n dv.setBigUint64(8, h64(input, 1n), true)\n dv.setBigUint64(16, h64(input, 2n), true)\n dv.setBigUint64(24, h64(input, 3n), true)\n\n return result\n}\n\nexport const Twox64Concat = (encoded: Uint8Array): Uint8Array =>\n mergeUint8(u64.enc(h64(encoded)), encoded)\n","// Adapted implementation based on: https://github.com/pierrec/js-xxhash/blob/7ff5ced282f97dba121109d7013e0fa80360398c/lib/xxhash64.js\n\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n\n// helper functions\nconst bigintFromU16 = (\n v0: number,\n v1: number,\n v2: number,\n v3: number,\n): bigint =>\n new DataView(new Uint16Array([v0, v1, v2, v3]).buffer).getBigUint64(0, true)\n\nconst MASK_64 = 2n ** 64n - 1n\n\nconst rotl = (input: bigint, nBits: bigint) =>\n ((input << nBits) & MASK_64) | (input >> (64n - nBits))\n\nconst multiply = (a: bigint, b: bigint) => (a * b) & MASK_64\n\nconst add = (a: bigint, b: bigint) => (a + b) & MASK_64\n\n// constants\nconst PRIME64_1 = 11400714785074694791n\nconst PRIME64_2 = 14029467366897019727n\nconst PRIME64_3 = 1609587929392839161n\nconst PRIME64_4 = 9650029242287828579n\nconst PRIME64_5 = 2870177450012600261n\n\nexport function h64(input: Uint8Array, seed: bigint = 0n) {\n let v1 = add(add(seed, PRIME64_1), PRIME64_2)\n let v2 = add(seed, PRIME64_2)\n let v3 = seed\n let v4 = seed - PRIME64_1\n let totalLen = input.length\n let memsize = 0\n let memory: Uint8Array | null = null\n\n ;(function update() {\n let p = 0\n let bEnd = p + totalLen\n\n if (!totalLen) return\n\n memory = new Uint8Array(32)\n\n if (totalLen < 32) {\n memory.set(input.subarray(0, totalLen), memsize)\n\n memsize += totalLen\n return\n }\n\n if (p <= bEnd - 32) {\n const limit = bEnd - 32\n\n do {\n let other\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n v1 = multiply(rotl(add(v1, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n\n v2 = multiply(rotl(add(v2, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n\n v3 = multiply(rotl(add(v3, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n other = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n v4 = multiply(rotl(add(v4, multiply(other, PRIME64_2)), 31n), PRIME64_1)\n p += 8\n } while (p <= limit)\n }\n\n if (p < bEnd) {\n memory.set(input.subarray(p, bEnd), memsize)\n memsize = bEnd - p\n }\n })()\n\n input = memory || input\n\n let result: bigint\n let p = 0\n\n if (totalLen >= 32) {\n result = rotl(v1, 1n)\n result = add(result, rotl(v2, 7n))\n result = add(result, rotl(v3, 12n))\n result = add(result, rotl(v4, 18n))\n\n v1 = multiply(rotl(multiply(v1, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v1\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v2 = multiply(rotl(multiply(v2, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v2\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v3 = multiply(rotl(multiply(v3, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v3\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n\n v4 = multiply(rotl(multiply(v4, PRIME64_2), 31n), PRIME64_1)\n result = result ^ v4\n result = add(multiply(result, PRIME64_1), PRIME64_4)\n } else {\n result = add(seed, PRIME64_5)\n }\n\n result = add(result, BigInt(totalLen))\n\n while (p <= memsize - 8) {\n let temp = bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n (input[p + 5] << 8) | input[p + 4],\n (input[p + 7] << 8) | input[p + 6],\n )\n temp = multiply(rotl(multiply(temp, PRIME64_2), 31n), PRIME64_1)\n result = add(multiply(rotl(result ^ temp, 27n), PRIME64_1), PRIME64_4)\n p += 8\n }\n\n if (p + 4 <= memsize) {\n let temp = multiply(\n bigintFromU16(\n (input[p + 1] << 8) | input[p],\n (input[p + 3] << 8) | input[p + 2],\n 0,\n 0,\n ),\n PRIME64_1,\n )\n\n result = add(multiply(rotl(result ^ temp, 23n), PRIME64_2), PRIME64_3)\n p += 4\n }\n\n while (p < memsize) {\n const temp = multiply(bigintFromU16(input[p++], 0, 0, 0), PRIME64_5)\n result = multiply(rotl(result ^ temp, 11n), PRIME64_1)\n }\n\n let temp = result >> 33n\n result = multiply(result ^ temp, PRIME64_2)\n\n temp = result >> 29n\n result = multiply(result ^ temp, PRIME64_3)\n\n temp = result >> 32n\n result ^= temp\n\n return result\n}\n","import { mergeUint8, toHex } from \"@polkadot-api/utils\"\nimport { Codec, Decoder } from \"scale-ts\"\nimport { Blake2128Concat, Identity, Twox128, Twox64Concat } from \"./hashes\"\n\nexport type EncoderWithHash<T> = [Codec<T>, (input: Uint8Array) => Uint8Array]\n\nconst textEncoder = new TextEncoder()\n\nexport const Storage = (pallet: string) => {\n const palledEncoded = Twox128(textEncoder.encode(pallet))\n return <T, A extends Array<EncoderWithHash<any>>>(\n name: string,\n dec: Decoder<T>,\n ...encoders: [...A]\n ): {\n enc: (\n ...args: {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n ) => string\n dec: Decoder<T>\n keyDecoder: (value: string) => {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n } => {\n const palletItemEncoded = mergeUint8(\n palledEncoded,\n Twox128(textEncoder.encode(name)),\n )\n\n const palletItemEncodedHex = toHex(palletItemEncoded)\n const bytesToSkip = encoders\n .map((e) => e[1])\n .map((x) => {\n if (x === Identity) return 0\n if (x === Twox64Concat) return 8\n if (x === Blake2128Concat) return 16\n return null\n })\n .filter(Boolean) as Array<number>\n\n const keyDecoder = (\n key: string,\n ): {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n } => {\n if (!key.startsWith(palletItemEncodedHex))\n throw new Error(`key does not match this storage (${pallet}.${name})`)\n\n if (bytesToSkip.length !== encoders.length)\n throw new Error(\"Impossible to decode this key\")\n\n if (encoders.length === 0) return [] as any\n\n const argsKey = key.slice(palletItemEncodedHex.length)\n const result = new Array<any>(encoders.length)\n for (let i = 0, cur = 0; i < bytesToSkip.length; i++) {\n const codec = encoders[i][0]\n cur += bytesToSkip[i]\n result[i] = codec.dec(argsKey.slice(cur * 2))\n cur += codec.enc(result[i]).length\n }\n return result as any\n }\n\n const fns = encoders.map(\n ([{ enc }, hash]) =>\n (val: any) =>\n hash(enc(val)),\n )\n\n const enc = (\n ...args: {\n [K in keyof A]: A[K] extends EncoderWithHash<infer V> ? V : unknown\n }\n ): string =>\n toHex(\n mergeUint8(palletItemEncoded, ...args.map((val, idx) => fns[idx](val))),\n )\n\n return {\n enc,\n dec,\n keyDecoder,\n }\n }\n}\n"],"mappings":"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","names":["import_scale_ts","import_scale_ts","import_scale_ts","import_scale_ts","str","import_utils","import_scale_ts","enc","dec","import_scale_ts","textEncoder","textDecoder","str","import_scale_ts","import_scale_ts","import_scale_ts","import_utils","enc","ScaleEnum","dec","import_utils","import_scale_ts","keccak","char","textEncoder","textDecoder","import_scale_ts","import_scale_ts","import_scale_ts","import_scale_ts","bitSequence","import_scale_ts","import_scale_ts","import_scale_ts","extrinsic","import_utils","import_blake2b","import_utils","import_scale_ts","p","temp","import_utils","textEncoder","dec","enc"]}
package/dist/index.mjs CHANGED
@@ -270,6 +270,26 @@ import {
270
270
  createCodec as createCodec6
271
271
  } from "scale-ts";
272
272
  import { mapObject } from "@polkadot-api/utils";
273
+
274
+ // src/types/enum.ts
275
+ var discriminant = {
276
+ is(value, type) {
277
+ return value.type === type;
278
+ },
279
+ as(value, type) {
280
+ if (type !== value.type)
281
+ throw new Error(
282
+ `Enum.as(enum, ${type}) used with actual type ${value.type}`
283
+ );
284
+ return value;
285
+ }
286
+ };
287
+ var Enum = Object.assign((type, value) => {
288
+ return {
289
+ type,
290
+ value
291
+ };
292
+ }, discriminant);
273
293
  var _Enum = new Proxy(
274
294
  {},
275
295
  {
@@ -278,16 +298,8 @@ var _Enum = new Proxy(
278
298
  }
279
299
  }
280
300
  );
281
- var Enum = (_type, _value) => ({
282
- as: (type) => {
283
- if (type !== _type)
284
- throw new Error(`Enum.as(${type}) used with actual type ${_type}`);
285
- return _value;
286
- },
287
- is: (type) => type === _type,
288
- type: _type,
289
- value: _value
290
- });
301
+
302
+ // src/codecs/scale/Variant.ts
291
303
  var VariantEnc = (...args) => {
292
304
  const enc3 = ScaleEnum.enc(...args);
293
305
  return (v) => enc3({ tag: v.type, value: v.value });