polkadot-api 0.0.0-prerelease-do-not-use
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/LICENSE +21 -0
- package/README.md +1 -0
- package/bin/cli.mjs +11 -0
- package/dist/index.d.mts +269 -0
- package/dist/index.d.ts +269 -0
- package/dist/index.js +916 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +929 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logs-provider/logs-provider.d.mts +1 -0
- package/dist/logs-provider/logs-provider.d.ts +1 -0
- package/dist/logs-provider/logs-provider.js +21 -0
- package/dist/logs-provider/logs-provider.js.map +1 -0
- package/dist/logs-provider/logs-provider.mjs +3 -0
- package/dist/logs-provider/logs-provider.mjs.map +1 -0
- package/dist/logs-provider/min/logs-provider.d.ts +1 -0
- package/dist/logs-provider/min/logs-provider.js +2 -0
- package/dist/logs-provider/min/logs-provider.js.map +1 -0
- package/dist/min/index.d.ts +269 -0
- package/dist/min/index.js +2 -0
- package/dist/min/index.js.map +1 -0
- package/dist/pjs-signer/min/pjs-signer.d.ts +1 -0
- package/dist/pjs-signer/min/pjs-signer.js +2 -0
- package/dist/pjs-signer/min/pjs-signer.js.map +1 -0
- package/dist/pjs-signer/pjs-signer.d.mts +1 -0
- package/dist/pjs-signer/pjs-signer.d.ts +1 -0
- package/dist/pjs-signer/pjs-signer.js +21 -0
- package/dist/pjs-signer/pjs-signer.js.map +1 -0
- package/dist/pjs-signer/pjs-signer.mjs +3 -0
- package/dist/pjs-signer/pjs-signer.mjs.map +1 -0
- package/dist/sc-provider/min/sc-provider.d.ts +1 -0
- package/dist/sc-provider/min/sc-provider.js +2 -0
- package/dist/sc-provider/min/sc-provider.js.map +1 -0
- package/dist/sc-provider/sc-provider.d.mts +1 -0
- package/dist/sc-provider/sc-provider.d.ts +1 -0
- package/dist/sc-provider/sc-provider.js +21 -0
- package/dist/sc-provider/sc-provider.js.map +1 -0
- package/dist/sc-provider/sc-provider.mjs +3 -0
- package/dist/sc-provider/sc-provider.mjs.map +1 -0
- package/dist/signer/min/signer.d.ts +1 -0
- package/dist/signer/min/signer.js +2 -0
- package/dist/signer/min/signer.js.map +1 -0
- package/dist/signer/signer.d.mts +1 -0
- package/dist/signer/signer.d.ts +1 -0
- package/dist/signer/signer.js +21 -0
- package/dist/signer/signer.js.map +1 -0
- package/dist/signer/signer.mjs +3 -0
- package/dist/signer/signer.mjs.map +1 -0
- package/dist/sm-provider/min/sm-provider.d.ts +1 -0
- package/dist/sm-provider/min/sm-provider.js +2 -0
- package/dist/sm-provider/min/sm-provider.js.map +1 -0
- package/dist/sm-provider/sm-provider.d.mts +1 -0
- package/dist/sm-provider/sm-provider.d.ts +1 -0
- package/dist/sm-provider/sm-provider.js +21 -0
- package/dist/sm-provider/sm-provider.js.map +1 -0
- package/dist/sm-provider/sm-provider.mjs +3 -0
- package/dist/sm-provider/sm-provider.mjs.map +1 -0
- package/dist/ws-provider-node/min/ws-provider-node.d.ts +1 -0
- package/dist/ws-provider-node/min/ws-provider-node.js +2 -0
- package/dist/ws-provider-node/min/ws-provider-node.js.map +1 -0
- package/dist/ws-provider-node/ws-provider-node.d.mts +1 -0
- package/dist/ws-provider-node/ws-provider-node.d.ts +1 -0
- package/dist/ws-provider-node/ws-provider-node.js +21 -0
- package/dist/ws-provider-node/ws-provider-node.js.map +1 -0
- package/dist/ws-provider-node/ws-provider-node.mjs +3 -0
- package/dist/ws-provider-node/ws-provider-node.mjs.map +1 -0
- package/dist/ws-provider-web/min/ws-provider-web.d.ts +1 -0
- package/dist/ws-provider-web/min/ws-provider-web.js +2 -0
- package/dist/ws-provider-web/min/ws-provider-web.js.map +1 -0
- package/dist/ws-provider-web/ws-provider-web.d.mts +1 -0
- package/dist/ws-provider-web/ws-provider-web.d.ts +1 -0
- package/dist/ws-provider-web/ws-provider-web.js +21 -0
- package/dist/ws-provider-web/ws-provider-web.js.map +1 -0
- package/dist/ws-provider-web/ws-provider-web.mjs +3 -0
- package/dist/ws-provider-web/ws-provider-web.mjs.map +1 -0
- package/logs-provider/package.json +8 -0
- package/package.json +192 -0
- package/pjs-signer/package.json +8 -0
- package/sc-provider/package.json +8 -0
- package/signer/package.json +8 -0
- package/sm-provider/package.json +8 -0
- package/ws-provider-node/package.json +8 -0
- package/ws-provider-web/package.json +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/constants.ts","../src/runtime.ts","../src/event.ts","../src/utils/shareLatest.ts","../src/utils/firstValueFromWithSignal.ts","../src/utils/concatMapEager.ts","../src/utils/lossLessExhaustMap.ts","../src/runtime-call.ts","../src/storage.ts","../src/tx.ts","../src/get-create-tx.ts","../src/signed-extensions/user/ChargeTransactionPayment.ts","../src/signed-extensions/utils.ts","../src/signed-extensions/user/CheckMortality.ts","../src/signed-extensions/user/ChargeAssetTxPayment.ts","../src/signed-extensions/chain/index.ts","../src/signed-extensions/chain/CheckGenesis.ts","../src/signed-extensions/chain/CheckNonce.ts","../src/signed-extensions/chain/CheckSpecVersion.ts","../src/signed-extensions/chain/CheckTxVersion.ts","../src/re-exports.ts"],"sourcesContent":["import { Descriptors } from \"@polkadot-api/substrate-bindings\"\nimport {\n SubstrateClient,\n createClient as createRawClient,\n} from \"@polkadot-api/substrate-client\"\nimport { Observable, firstValueFrom } from \"rxjs\"\nimport { ConstantEntry, createConstantEntry } from \"./constants\"\nimport { EvClient, createEventEntry } from \"./event\"\nimport { BlockInfo, getObservableClient } from \"@polkadot-api/observable-client\"\nimport { compatibilityHelper, getRuntimeApi } from \"./runtime\"\nimport { RuntimeCall, createRuntimeCallEntry } from \"./runtime-call\"\nimport { createStorageEntry, type StorageEntry } from \"./storage\"\nimport { TxEntry, createTxEntry, getSubmitFns } from \"./tx\"\nimport { HintedSignedExtensions, PolkadotClient, TypedApi } from \"./types\"\nimport { getCreateTx } from \"./get-create-tx\"\nimport { JsonRpcProvider } from \"@polkadot-api/json-rpc-provider\"\nimport type { PolkadotSigner } from \"@polkadot-api/polkadot-signer\"\n\nconst createTypedApi = <D extends Descriptors>(\n descriptors: D,\n createTxFromSigner: (\n signer: PolkadotSigner,\n callData: Uint8Array,\n atBlock: BlockInfo,\n hinted?: HintedSignedExtensions,\n ) => Observable<Uint8Array>,\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n submitFns: ReturnType<typeof getSubmitFns>,\n): TypedApi<D> => {\n const runtimeApi = getRuntimeApi(descriptors.checksums, chainHead)\n\n const { pallets, apis: runtimeApis } = descriptors\n const query = {} as Record<string, Record<string, StorageEntry<any, any>>>\n for (const pallet in pallets) {\n query[pallet] ||= {}\n const [stgEntries] = pallets[pallet]\n for (const name in stgEntries) {\n query[pallet][name] = createStorageEntry(\n pallet,\n name,\n chainHead,\n compatibilityHelper(runtimeApi, stgEntries[name]),\n )\n }\n }\n\n const tx = {} as Record<string, Record<string, TxEntry<any, any, any, any>>>\n for (const pallet in pallets) {\n tx[pallet] ||= {}\n const [, txEntries] = pallets[pallet]\n for (const name in txEntries) {\n tx[pallet][name] = createTxEntry(\n pallet,\n name,\n descriptors.asset,\n chainHead,\n submitFns,\n createTxFromSigner,\n compatibilityHelper(runtimeApi, txEntries[name]),\n )\n }\n }\n\n const events = {} as Record<string, Record<string, EvClient<any>>>\n for (const pallet in pallets) {\n events[pallet] ||= {}\n const [, , evEntries] = pallets[pallet]\n for (const name in evEntries) {\n events[pallet][name] = createEventEntry(\n pallet,\n name,\n chainHead,\n compatibilityHelper(runtimeApi, evEntries[name]),\n )\n }\n }\n\n const constants = {} as Record<string, Record<string, ConstantEntry<any>>>\n for (const pallet in pallets) {\n constants[pallet] ||= {}\n const [, , , , ctEntries] = pallets[pallet]\n for (const name in ctEntries) {\n constants[pallet][name] = createConstantEntry(\n pallet,\n name,\n chainHead,\n compatibilityHelper(runtimeApi, ctEntries[name]),\n )\n }\n }\n\n const apis = {} as Record<string, Record<string, RuntimeCall<any, any>>>\n for (const api in runtimeApis) {\n apis[api] ||= {}\n const methods = runtimeApis[api]\n for (const method in methods) {\n apis[api][method] = createRuntimeCallEntry(\n api,\n method,\n chainHead,\n compatibilityHelper(runtimeApi, methods[method]),\n )\n }\n }\n\n return {\n query: query,\n tx: tx,\n event: events,\n apis,\n constants,\n runtime: runtimeApi,\n } as any\n}\n\nexport function createClient(provider: JsonRpcProvider): PolkadotClient {\n const rawClient: SubstrateClient = createRawClient(provider)\n const client = getObservableClient(rawClient)\n const chainHead = client.chainHead$()\n\n const createTxFromSigner = getCreateTx(chainHead)\n const submitFns = getSubmitFns(chainHead, client)\n const { submit, submit$: submitAndWatch } = submitFns\n\n return {\n finalized$: chainHead.finalized$,\n bestBlocks$: chainHead.bestBlocks$,\n getBlockHeader: (hash?: string) =>\n firstValueFrom(chainHead.header$(hash ?? null)),\n getBlockBody: chainHead.body$,\n destroy: () => {\n chainHead.unfollow()\n client.destroy()\n },\n submit,\n submitAndWatch,\n getTypedApi: <D extends Descriptors>(descriptors: D) =>\n createTypedApi(descriptors, createTxFromSigner, chainHead, submitFns),\n }\n}\n","import { firstValueFrom, map } from \"rxjs\"\nimport { ChainHead$, RuntimeContext } from \"@polkadot-api/observable-client\"\nimport {\n CompatibilityHelper,\n IsCompatible,\n Runtime,\n getRuntimeContext,\n} from \"./runtime\"\n\nexport interface ConstantEntry<T> {\n (): Promise<T>\n (runtime: Runtime): T\n isCompatible: IsCompatible\n}\n\nexport const createConstantEntry = <T>(\n palletName: string,\n name: string,\n chainHead: ChainHead$,\n compatibilityHelper: CompatibilityHelper,\n): ConstantEntry<T> => {\n const { isCompatible, compatibleRuntime$ } = compatibilityHelper((ctx) =>\n ctx.checksumBuilder.buildConstant(palletName, name),\n )\n const checksumError = () =>\n new Error(`Incompatible runtime entry Constant(${palletName}.${name})`)\n\n const cachedResults = new WeakMap<RuntimeContext, T>()\n const getValueWithContext = (ctx: RuntimeContext) => {\n if (cachedResults.has(ctx)) {\n return cachedResults.get(ctx)!\n }\n\n const pallet = ctx.metadata.pallets.find((p) => p.name === palletName)\n const constant = pallet?.constants.find((c) => c.name === name)!\n const result = ctx.dynamicBuilder\n .buildConstant(palletName, name)\n .dec(constant.value)\n cachedResults.set(ctx, result)\n return result\n }\n\n const fn = (runtime?: Runtime): any => {\n if (runtime) {\n if (!isCompatible(runtime)) throw checksumError()\n return getValueWithContext(getRuntimeContext(runtime))\n }\n return firstValueFrom(\n compatibleRuntime$(chainHead, null, checksumError).pipe(\n map(getValueWithContext),\n ),\n )\n }\n\n return Object.assign(fn, { isCompatible })\n}\n","import { Observable, combineLatest, filter, map } from \"rxjs\"\nimport {\n ChainHead$,\n RuntimeContext,\n getObservableClient,\n} from \"@polkadot-api/observable-client\"\n\nexport class Runtime {\n protected _ctx: unknown\n protected _checksums: string[]\n\n private constructor(ctx: RuntimeContext, checksums: string[]) {\n this._ctx = ctx\n this._checksums = checksums\n }\n}\nexport function getRuntimeContext(runtime: Runtime): RuntimeContext {\n return (runtime as any)._ctx\n}\nfunction getImportedChecksum(runtime: Runtime, idx: number): string {\n return (runtime as any)._checksums[idx]\n}\nconst createRuntime = (ctx: RuntimeContext, checksums: string[]) =>\n new (Runtime as any)(ctx, checksums)\n\nexport type RuntimeApi = Observable<Runtime> & {\n latest: () => Promise<Runtime>\n}\n\nexport const getRuntimeApi = (\n checksums: Promise<string[]>,\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n): RuntimeApi => {\n let latestRuntime: Promise<Runtime>\n let resolve: ((r: Runtime) => void) | null = null\n\n latestRuntime = new Promise<Runtime>((res) => {\n resolve = res\n })\n\n const runtimeWithChecksums$ = combineLatest([chainHead.runtime$, checksums])\n runtimeWithChecksums$.subscribe(([x, checksums]) => {\n if (x) {\n if (resolve) {\n resolve(createRuntime(x, checksums))\n resolve = null\n } else {\n latestRuntime = Promise.resolve(createRuntime(x, checksums))\n }\n } else if (!resolve) {\n latestRuntime = new Promise<Runtime>((res) => {\n resolve = res\n })\n }\n })\n\n const result = runtimeWithChecksums$.pipe(\n filter(([x]) => Boolean(x)),\n map(([x, checksums]) => createRuntime(x!, checksums)),\n ) as RuntimeApi\n result.latest = () => latestRuntime\n\n return result\n}\n\nexport interface IsCompatible {\n (): Promise<boolean>\n (runtime: Runtime): boolean\n}\n\nexport const compatibilityHelper =\n (runtimeApi: RuntimeApi, checksumIdx: number) =>\n (getChecksum: (ctx: RuntimeContext) => string | null) => {\n function isCompatibleSync(runtime: Runtime) {\n const ctx = getRuntimeContext(runtime)\n const checksum = getImportedChecksum(runtime, checksumIdx)\n return getChecksum(ctx) === checksum\n }\n\n const isCompatible: IsCompatible = (runtime?: Runtime): any => {\n if (runtime) {\n return isCompatibleSync(runtime)\n }\n\n return runtimeApi.latest().then(isCompatibleSync)\n }\n const waitChecksums = async () => {\n const runtime = await runtimeApi.latest()\n return (ctx: RuntimeContext) =>\n getChecksum(ctx) === getImportedChecksum(runtime, checksumIdx)\n }\n const compatibleRuntime$ = (\n chainHead: ChainHead$,\n hash: string | null,\n error: () => Error,\n ) =>\n combineLatest([chainHead.getRuntimeContext$(hash), waitChecksums()]).pipe(\n map(([ctx, isCompatible]) => {\n if (!isCompatible(ctx)) {\n throw error()\n }\n return ctx\n }),\n )\n\n const withCompatibleRuntime =\n <T>(\n chainHead: ChainHead$,\n mapper: (x: T) => string,\n error: () => Error,\n ) =>\n (source$: Observable<T>): Observable<[T, RuntimeContext]> =>\n combineLatest([\n source$.pipe(chainHead.withRuntime(mapper)),\n waitChecksums(),\n ]).pipe(\n map(([[x, ctx], isCompatible]) => {\n if (!isCompatible(ctx)) {\n throw error()\n }\n return [x, ctx]\n }),\n )\n\n return {\n isCompatible,\n waitChecksums,\n withCompatibleRuntime,\n compatibleRuntime$,\n }\n }\nexport type CompatibilityHelper = ReturnType<typeof compatibilityHelper>\n","import { Observable, firstValueFrom, map, mergeMap } from \"rxjs\"\nimport { BlockInfo, ChainHead$ } from \"@polkadot-api/observable-client\"\nimport { CompatibilityHelper, IsCompatible } from \"./runtime\"\nimport { concatMapEager, shareLatest } from \"./utils\"\n\nexport type EventPhase =\n | { type: \"ApplyExtrinsic\"; value: number }\n | { type: \"Finalization\" }\n | { type: \"Initialization\" }\n\nexport type EvWatch<T> = (filter?: (value: T) => boolean) => Observable<{\n meta: {\n block: BlockInfo\n phase: EventPhase\n }\n payload: T\n}>\n\nexport type EvPull<T> = () => Promise<\n Array<{\n meta: {\n block: BlockInfo\n phase: EventPhase\n }\n payload: T\n }>\n>\n\nexport type EvFilter<T> = (collection: SystemEvent[\"event\"][]) => Array<T>\n\nexport type EvClient<T> = {\n watch: EvWatch<T>\n pull: EvPull<T>\n filter: EvFilter<T>\n isCompatible: IsCompatible\n}\n\ntype SystemEvent = {\n phase: EventPhase\n event: {\n type: string\n value: {\n type: string\n value: any\n }\n }\n topics: Array<any>\n}\n\nexport const createEventEntry = <T>(\n pallet: string,\n name: string,\n chainHead: ChainHead$,\n compatibilityHelper: CompatibilityHelper,\n): EvClient<T> => {\n const { isCompatible, withCompatibleRuntime } = compatibilityHelper((ctx) =>\n ctx.checksumBuilder.buildEvent(pallet, name),\n )\n const checksumError = () =>\n new Error(`Incompatible runtime entry Event(${pallet}.${name})`)\n\n const shared$ = chainHead.finalized$.pipe(\n withCompatibleRuntime(chainHead, (x) => x.hash, checksumError),\n concatMapEager(([block]) =>\n chainHead.eventsAt$(block.hash).pipe(\n map((events) => {\n const winners = events.filter(\n (e) => e.event.type === pallet && e.event.value.type === name,\n )\n return winners.map((x) => {\n return {\n meta: {\n phase: x.phase,\n block,\n },\n payload: x.event.value.value,\n }\n })\n }),\n ),\n ),\n shareLatest,\n )\n\n const watch: EvWatch<T> = (f) =>\n shared$.pipe(mergeMap((x) => (f ? x.filter((d) => f(d.payload)) : x)))\n\n const pull: EvPull<T> = () => firstValueFrom(shared$)\n\n const filter: EvFilter<T> = (events) =>\n events\n .filter((e) => e.type === pallet && e.value.type === name)\n .map((x) => x.value.value)\n\n return { watch, pull, filter, isCompatible }\n}\n","import { Observable, ReplaySubject, share } from \"rxjs\"\n\nexport const shareLatest: <T>(base: Observable<T>) => Observable<T> = share({\n connector: () => new ReplaySubject(1),\n resetOnError: true,\n resetOnComplete: true,\n resetOnRefCountZero: true,\n})\n","import { AbortError } from \"@polkadot-api/utils\"\nimport { Observable, Subscription, noop } from \"rxjs\"\n\nexport function firstValueFromWithSignal<T>(\n source: Observable<T>,\n signal?: AbortSignal,\n): Promise<T> {\n return new Promise((resolve, reject) => {\n let subscription: Subscription | null = null\n let isDone = false\n\n const onAbort = signal\n ? () => {\n subscription?.unsubscribe()\n reject(new AbortError())\n }\n : noop\n\n subscription = source.subscribe({\n next: (value) => {\n resolve(value)\n subscription?.unsubscribe()\n isDone = true\n },\n error: (e) => {\n signal?.removeEventListener(\"abort\", onAbort)\n reject(e)\n },\n complete: () => {\n signal?.removeEventListener(\"abort\", onAbort)\n reject(new Error(\"Observable completed without emitting\"))\n },\n })\n\n // the observable could have emitted synchronously\n if (!isDone) signal?.addEventListener(\"abort\", onAbort)\n })\n}\n","import { defer, Observable, ObservableInput, Subscription } from \"rxjs\"\n\nexport const concatMapEager =\n <I, O>(\n mapper: (outterValue: I, index: number) => ObservableInput<O>,\n concurrent = Infinity,\n ) =>\n (source$: Observable<I>) =>\n new Observable<O>((observer) => {\n let topSubscription: Subscription\n const queues = new Map<number, Observable<O>>()\n const innerSubscriptions = new Map<number, Subscription>()\n const results = new Map<number, O[]>()\n\n let mapperIdx = 0\n let subscriptionIdx = 0\n let observerIdx = 0\n\n const nextSubscription = () => {\n const inner$ = queues.get(subscriptionIdx)\n if (!inner$) {\n if (\n innerSubscriptions.size === 0 &&\n (typeof topSubscription === \"undefined\" || topSubscription.closed)\n ) {\n observer.complete()\n }\n return\n }\n const idx = subscriptionIdx++\n queues.delete(idx)\n if (observerIdx !== idx) {\n results.set(idx, [])\n }\n innerSubscriptions.set(\n idx,\n inner$.subscribe({\n next(x: O) {\n if (observerIdx === idx) {\n observer.next(x)\n } else {\n results.get(idx)!.push(x)\n }\n },\n complete() {\n innerSubscriptions.delete(idx)\n if (idx === observerIdx) {\n observerIdx++\n while (results.has(observerIdx)) {\n results.get(observerIdx)!.forEach((x) => observer.next(x))\n results.delete(observerIdx)\n if (innerSubscriptions.has(observerIdx)) {\n break\n }\n observerIdx++\n }\n }\n nextSubscription()\n },\n error(e: any) {\n observer.error(e)\n },\n }),\n )\n }\n\n topSubscription = source$.subscribe({\n next(outterValue: I) {\n const idx = mapperIdx++\n queues.set(\n idx,\n defer(() => mapper(outterValue, idx)),\n )\n if (innerSubscriptions.size < concurrent) {\n nextSubscription()\n }\n },\n error(e: any) {\n observer.error(e)\n },\n complete() {\n if (innerSubscriptions.size === 0) {\n observer.complete()\n }\n },\n })\n\n return () => {\n innerSubscriptions.forEach((subscription) => subscription.unsubscribe())\n topSubscription.unsubscribe()\n queues.clear()\n results.clear()\n }\n })\n","import { Observable, Subscription } from \"rxjs\"\n\nconst EMPTY_VALUE = Symbol(\"EMPTY_VALUE\")\ntype EMPTY_VALUE = typeof EMPTY_VALUE\n\nexport const lossLessExhaustMap =\n <I, O>(mapper: (x: I) => Observable<O>) =>\n (source$: Observable<I>): Observable<O> =>\n new Observable((observer) => {\n let innerSubscription: Subscription | null = null\n let queuedValue: I | EMPTY_VALUE = EMPTY_VALUE\n let isOutterDone = false\n\n const setInnerSubscription = () => {\n const observable = mapper(queuedValue as I)\n queuedValue = EMPTY_VALUE\n innerSubscription = observable.subscribe({\n next(vv) {\n observer.next(vv)\n },\n error(ee) {\n observer.error(ee)\n },\n complete() {\n if (queuedValue !== EMPTY_VALUE) setInnerSubscription()\n else {\n innerSubscription = null\n if (isOutterDone) observer.complete()\n }\n },\n })\n }\n\n const subscription = source$.subscribe({\n next(v) {\n queuedValue = v\n if (!innerSubscription) setInnerSubscription()\n },\n error(e) {\n observer.error(e)\n },\n complete() {\n if (!innerSubscription) observer.complete()\n isOutterDone = true\n },\n })\n\n return () => {\n innerSubscription?.unsubscribe()\n subscription.unsubscribe()\n }\n })\n","import { firstValueFromWithSignal } from \"@/utils\"\nimport { toHex } from \"@polkadot-api/utils\"\nimport { map, mergeMap } from \"rxjs\"\nimport { ChainHead$ } from \"@polkadot-api/observable-client\"\nimport { CompatibilityHelper, IsCompatible } from \"./runtime\"\n\ntype CallOptions = Partial<{\n at: string\n signal: AbortSignal\n}>\n\ntype WithCallOptions<Args extends Array<any>> = Args[\"length\"] extends 0\n ? [options?: CallOptions]\n : [...args: Args, options?: CallOptions]\n\nexport interface RuntimeCall<Args extends Array<any>, Payload> {\n (...args: WithCallOptions<Args>): Promise<Payload>\n isCompatible: IsCompatible\n}\n\nconst isOptionalArg = (lastArg: any) => {\n if (typeof lastArg !== \"object\") return false\n\n return Object.keys(lastArg).every(\n (k) =>\n (k === \"at\" && typeof lastArg.at === \"string\") ||\n (k === \"signal\" && lastArg.signal instanceof AbortSignal),\n )\n}\n\nexport const createRuntimeCallEntry = (\n api: string,\n method: string,\n chainHead: ChainHead$,\n compatibilityHelper: CompatibilityHelper,\n): RuntimeCall<any, any> => {\n const { isCompatible, compatibleRuntime$ } = compatibilityHelper((ctx) =>\n ctx.checksumBuilder.buildRuntimeCall(api, method),\n )\n const callName = `${api}_${method}`\n const checksumError = () =>\n new Error(`Incompatible runtime entry RuntimeCall(${callName})`)\n\n const fn = (...args: Array<any>) => {\n const lastArg = args[args.length - 1]\n const isLastArgOptional = isOptionalArg(lastArg)\n const { signal, at: _at }: CallOptions = isLastArgOptional ? lastArg : {}\n const at = _at ?? null\n\n const result$ = compatibleRuntime$(chainHead, at, checksumError).pipe(\n mergeMap((ctx) => {\n const codecs = ctx.dynamicBuilder.buildRuntimeCall(api, method)\n return chainHead\n .call$(at, callName, toHex(codecs.args.enc(args)))\n .pipe(map(codecs.value.dec))\n }),\n )\n\n return firstValueFromWithSignal(result$, signal)\n }\n\n return Object.assign(fn, { isCompatible })\n}\n","import { firstValueFromWithSignal, lossLessExhaustMap } from \"@/utils\"\nimport { StorageItemInput, StorageResult } from \"@polkadot-api/substrate-client\"\nimport { Observable, debounceTime, distinctUntilChanged, map } from \"rxjs\"\nimport { ChainHead$ } from \"@polkadot-api/observable-client\"\nimport { CompatibilityHelper, IsCompatible } from \"./runtime\"\n\ntype CallOptions = Partial<{\n at: string\n signal: AbortSignal\n}>\n\ntype WithCallOptions<Args extends Array<any>> = [\n ...args: Args,\n options?: CallOptions,\n]\n\ntype PossibleParents<A extends Array<any>> = A extends [...infer Left, any]\n ? Left | PossibleParents<Left>\n : []\n\ntype StorageEntryWithoutKeys<Payload> = {\n isCompatible: IsCompatible\n getValue: (options?: CallOptions) => Promise<Payload>\n watchValue: (bestOrFinalized?: \"best\" | \"finalized\") => Observable<Payload>\n}\n\ntype StorageEntryWithKeys<Args extends Array<any>, Payload> = {\n isCompatible: IsCompatible\n getValue: (...args: [...WithCallOptions<Args>]) => Promise<Payload>\n watchValue: (\n ...args: [...Args, bestOrFinalized?: \"best\" | \"finalized\"]\n ) => Observable<Payload>\n getValues: (\n keys: Array<[...Args]>,\n options?: CallOptions,\n ) => Promise<Array<Payload>>\n getEntries: (\n ...args: WithCallOptions<PossibleParents<Args>>\n ) => Promise<Array<{ keyArgs: Args; value: NonNullable<Payload> }>>\n}\n\nexport type StorageEntry<Args extends Array<any>, Payload> = Args extends []\n ? StorageEntryWithoutKeys<Payload>\n : StorageEntryWithKeys<Args, Payload>\n\nexport type Storage$ = <Type extends StorageItemInput[\"type\"]>(\n hash: string | null,\n type: Type,\n key: string,\n childTrie: string | null,\n) => Observable<StorageResult<Type>>\n\nconst isOptionalArg = (lastArg: any) => {\n if (typeof lastArg !== \"object\") return false\n\n return Object.keys(lastArg).every(\n (k) =>\n (k === \"at\" && typeof lastArg.at === \"string\") ||\n (k === \"signal\" && lastArg.signal instanceof AbortSignal),\n )\n}\n\nexport const createStorageEntry = (\n pallet: string,\n name: string,\n chainHead: ChainHead$,\n compatibilityHelper: CompatibilityHelper,\n): StorageEntry<any, any> => {\n const { isCompatible, waitChecksums, withCompatibleRuntime } =\n compatibilityHelper((ctx) => ctx.checksumBuilder.buildStorage(pallet, name))\n\n const checksumError = () =>\n new Error(`Incompatible runtime entry Storage(${pallet}.${name})`)\n const invalidArgs = (args: Array<any>) =>\n new Error(`Invalid Arguments calling ${pallet}.${name}(${args})`)\n\n const watchValue = (...args: Array<any>) => {\n const lastArg = args[args.length - 1]\n const actualArgs =\n lastArg === \"best\" || lastArg === \"finalized\" ? args.slice(0, -1) : args\n\n return chainHead[lastArg === \"best\" ? \"best$\" : \"finalized$\"].pipe(\n debounceTime(0),\n withCompatibleRuntime(chainHead, (x) => x.hash, checksumError),\n lossLessExhaustMap(([block, ctx]) => {\n const codecs = ctx.dynamicBuilder.buildStorage(pallet, name)\n return chainHead\n .storage$(block.hash, \"value\", () => codecs.enc(...actualArgs))\n .pipe(map((val) => ({ val, codecs })))\n }),\n distinctUntilChanged((a, b) => a.val === b.val),\n map(({ val, codecs }) =>\n val === null ? codecs.fallback : codecs.dec(val),\n ),\n )\n }\n\n const getValue = async (...args: Array<any>) => {\n const lastArg = args[args.length - 1]\n const isLastArgOptional = isOptionalArg(lastArg)\n const { signal, at: _at }: CallOptions = isLastArgOptional ? lastArg : {}\n const at = _at ?? null\n\n const isCompatible = await waitChecksums()\n const result$ = chainHead.storage$(\n at,\n \"value\",\n (ctx) => {\n const codecs = ctx.dynamicBuilder.buildStorage(pallet, name)\n const actualArgs = args.length === codecs.len ? args : args.slice(0, -1)\n if (args !== actualArgs && !isLastArgOptional) throw invalidArgs(args)\n if (!isCompatible(ctx)) throw checksumError()\n return codecs.enc(...actualArgs)\n },\n null,\n (data, ctx) => {\n const codecs = ctx.dynamicBuilder.buildStorage(pallet, name)\n return data === null ? codecs.fallback : codecs.dec(data)\n },\n )\n return firstValueFromWithSignal(result$, signal)\n }\n\n const getEntries = async (...args: Array<any>) => {\n const lastArg = args[args.length - 1]\n const isLastArgOptional = isOptionalArg(lastArg)\n const { signal, at: _at }: CallOptions = isLastArgOptional ? lastArg : {}\n const at = _at ?? null\n\n const isCompatible = await waitChecksums()\n const result$ = chainHead.storage$(\n at,\n \"descendantsValues\",\n (ctx) => {\n const codecs = ctx.dynamicBuilder.buildStorage(pallet, name)\n if (args.length > codecs.len) throw invalidArgs(args)\n const actualArgs =\n args.length > 0 && isLastArgOptional ? args.slice(0, -1) : args\n if (args.length === codecs.len && actualArgs === args)\n throw invalidArgs(args)\n if (!isCompatible(ctx)) throw checksumError()\n return codecs.enc(...actualArgs)\n },\n null,\n (values, ctx) => {\n const codecs = ctx.dynamicBuilder.buildStorage(pallet, name)\n return values.map(({ key, value }) => ({\n keyArgs: codecs.keyDecoder(key),\n value: codecs.dec(value),\n }))\n },\n )\n return firstValueFromWithSignal(result$, signal)\n }\n\n const getValues = (keyArgs: Array<Array<any>>, options?: CallOptions) =>\n Promise.all(\n keyArgs.map((args) => getValue(...(options ? [...args, options] : args))),\n )\n\n return { isCompatible, getValue, getValues, getEntries, watchValue }\n}\n","import {\n AssetDescriptor,\n Binary,\n Enum,\n HexString,\n} from \"@polkadot-api/substrate-bindings\"\nimport { mergeUint8, toHex } from \"@polkadot-api/utils\"\nimport {\n Observable,\n concat,\n firstValueFrom,\n lastValueFrom,\n map,\n mergeMap,\n of,\n startWith,\n take,\n withLatestFrom,\n} from \"rxjs\"\nimport {\n BlockInfo,\n RuntimeContext,\n SystemEvent,\n getObservableClient,\n} from \"@polkadot-api/observable-client\"\nimport { TrackedTx } from \"@polkadot-api/observable-client\"\nimport {\n CompatibilityHelper,\n IsCompatible,\n Runtime,\n getRuntimeContext,\n} from \"./runtime\"\nimport { PolkadotSigner } from \"../../signers/polkadot-signer/dist/index.mjs\"\n\nexport type TxBroadcastEvent =\n | { type: \"broadcasted\" }\n | { type: \"bestChainBlockIncluded\"; block: { hash: string; index: number } }\n | ({\n type: \"finalized\"\n } & TxFinalizedPayload)\nexport type TxEvent = TxBroadcastEvent | { type: \"signed\"; tx: HexString }\n\nexport type TxFinalizedPayload = {\n ok: boolean\n events: Array<SystemEvent[\"event\"]>\n block: { hash: string; index: number }\n}\n\nconst getTxSuccessFromSystemEvents = (\n systemEvents: Array<SystemEvent>,\n txIdx: number,\n): Omit<TxFinalizedPayload, \"block\"> => {\n const events = systemEvents\n .filter((x) => x.phase.type === \"ApplyExtrinsic\" && x.phase.value === txIdx)\n .map((x) => x.event)\n\n const lastEvent = events[events.length - 1]\n const ok =\n lastEvent.type === \"System\" && lastEvent.value.type === \"ExtrinsicSuccess\"\n\n return { ok, events }\n}\n\ntype TxFunction<Asset> = (\n from: PolkadotSigner,\n hintedSignExtensions?: Partial<\n void extends Asset\n ? {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n }\n : {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n asset: Asset\n }\n >,\n) => Promise<TxFinalizedPayload>\n\ntype TxObservable<Asset> = (\n from: PolkadotSigner,\n hintedSignExtensions?: Partial<\n void extends Asset\n ? {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n }\n : {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n asset: Asset\n }\n >,\n) => Observable<TxEvent>\n\ninterface TxCall {\n (): Promise<Binary>\n (runtime: Runtime): Binary\n}\n\ntype TxSigned<Asset> = (\n from: PolkadotSigner,\n hintedSignExtensions?: Partial<\n void extends Asset\n ? {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n }\n : {\n tip: bigint\n mortal: { mortal: false } | { mortal: true; period: number }\n asset: Asset\n }\n >,\n) => Promise<string>\n\nexport type Transaction<\n Arg extends {} | undefined,\n Pallet extends string,\n Name extends string,\n Asset,\n> = {\n sign: TxSigned<Asset>\n signSubmitAndWatch: TxObservable<Asset>\n signAndSubmit: TxFunction<Asset>\n getEncodedData: TxCall\n decodedCall: Enum<{\n type: Pallet\n value: Enum<{\n type: Name\n value: Arg\n }>\n }>\n}\n\nexport interface TxEntry<\n Arg extends {} | undefined,\n Pallet extends string,\n Name extends string,\n Asset,\n> {\n (\n ...args: Arg extends undefined ? [] : [data: Arg]\n ): Transaction<Arg, Pallet, Name, Asset>\n isCompatible: IsCompatible\n}\n\nexport const getSubmitFns = (\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n client: ReturnType<typeof getObservableClient>,\n) => {\n const tx$ = (tx: string) =>\n concat(\n chainHead.finalized$.pipe(\n take(1),\n mergeMap((finalized) => chainHead.validateTx$(tx, finalized.hash)),\n map((isValid) => {\n if (!isValid) throw new Error(\"Invalid\")\n return { type: \"broadcasted\" as \"broadcasted\" }\n }),\n ),\n new Observable<TrackedTx>((observer) => {\n const subscription = chainHead.trackTx$(tx).subscribe(observer)\n subscription.add(\n client.broadcastTx$(tx).subscribe({\n error(e) {\n observer.error(e)\n },\n }),\n )\n return subscription\n }),\n )\n\n const submit$ = (transaction: HexString): Observable<TxBroadcastEvent> =>\n tx$(transaction).pipe(\n mergeMap((result) => {\n return result.type !== \"finalized\"\n ? of(result)\n : chainHead.eventsAt$(result.block.hash).pipe(\n map((events) => ({\n ...result,\n ...getTxSuccessFromSystemEvents(\n events,\n Number(result.block.index),\n ),\n })),\n )\n }),\n )\n\n const submit = async (\n transaction: HexString,\n ): Promise<{\n ok: boolean\n events: Array<SystemEvent[\"event\"]>\n block: { hash: string; index: number }\n }> =>\n lastValueFrom(submit$(transaction)).then((x) => {\n if (x.type !== \"finalized\") throw null\n const result: {\n ok: boolean\n events: Array<SystemEvent[\"event\"]>\n block: { hash: string; index: number }\n type?: any\n } = { ...x }\n delete result.type\n return result\n })\n\n return { submit$, submit }\n}\n\nexport const createTxEntry = <\n Arg extends {} | undefined,\n Pallet extends string,\n Name extends string,\n Asset extends AssetDescriptor<any>,\n>(\n pallet: Pallet,\n name: Name,\n assetChecksum: Asset,\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n submits: ReturnType<typeof getSubmitFns>,\n signer: (\n from: PolkadotSigner,\n callData: Uint8Array,\n atBlock: BlockInfo,\n hinted?: Partial<{}>,\n ) => Observable<Uint8Array>,\n compatibilityHelper: CompatibilityHelper,\n): TxEntry<Arg, Pallet, Name, Asset[\"_type\"]> => {\n const { isCompatible, compatibleRuntime$ } = compatibilityHelper((ctx) =>\n ctx.checksumBuilder.buildCall(pallet, name),\n )\n const checksumError = () =>\n new Error(`Incompatible runtime entry Tx(${pallet}.${name})`)\n\n const fn = (arg?: Arg): any => {\n const getCallDataWithContext = (\n { dynamicBuilder, asset: [assetEnc, assetCheck] }: RuntimeContext,\n arg: any,\n hinted: Partial<{ asset: any }> = {},\n ) => {\n let returnHinted = hinted\n if (hinted.asset) {\n if (assetChecksum !== assetCheck)\n throw new Error(`Incompatible runtime asset`)\n returnHinted = { ...hinted, asset: assetEnc(hinted.asset) }\n }\n\n const { location, codec } = dynamicBuilder.buildCall(pallet, name)\n return {\n callData: Binary.fromBytes(\n mergeUint8(new Uint8Array(location), codec.enc(arg)),\n ),\n hinted: returnHinted,\n }\n }\n\n const getCallData$ = (arg: any, hinted: Partial<{ asset: any }> = {}) =>\n compatibleRuntime$(chainHead, null, checksumError).pipe(\n map((ctx) => getCallDataWithContext(ctx, arg, hinted)),\n )\n\n const getEncodedData: TxCall = (runtime?: Runtime): any => {\n if (runtime) {\n if (!isCompatible(runtime)) {\n throw checksumError()\n }\n return getCallDataWithContext(getRuntimeContext(runtime), arg).callData\n }\n return firstValueFrom(getCallData$(arg).pipe(map((x) => x.callData)))\n }\n\n const sign$ = (from: PolkadotSigner, _hinted: any) =>\n getCallData$(arg, _hinted).pipe(\n withLatestFrom(chainHead.finalized$),\n take(1),\n mergeMap(([{ callData, hinted }, finalized]) =>\n signer(from, callData.asBytes(), finalized, hinted),\n ),\n )\n\n const sign: TxSigned<Asset> = (from, _hinted) =>\n firstValueFrom(sign$(from, _hinted)).then(toHex)\n\n const signAndSubmit: TxFunction<Asset> = (from, _hinted) =>\n sign(from, _hinted).then(submits.submit)\n\n const signSubmitAndWatch: TxObservable<Asset> = (from, _hinted) =>\n sign$(from, _hinted).pipe(\n mergeMap((result) => {\n const tx = toHex(result)\n return submits\n .submit$(tx)\n .pipe(startWith({ type: \"signed\" as const, tx }))\n }),\n )\n\n return {\n decodedCall: Enum(pallet, Enum(name, arg as any)) as Enum<{\n type: Pallet\n value: any\n }>,\n getEncodedData,\n sign,\n signSubmitAndWatch,\n signAndSubmit,\n }\n }\n\n return Object.assign(fn, { isCompatible })\n}\n","import { Observable, combineLatest, mergeMap, of, take } from \"rxjs\"\nimport { BlockInfo, ChainHead$ } from \"@polkadot-api/observable-client\"\nimport { HintedSignedExtensions } from \"./types\"\nimport {\n ChargeAssetTxPayment,\n ChargeTransactionPayment,\n CheckMortality,\n} from \"./signed-extensions/user\"\nimport * as chainSignedExtensions from \"./signed-extensions/chain\"\nimport type { PolkadotSigner } from \"@polkadot-api/polkadot-signer\"\nimport { _void } from \"@polkadot-api/substrate-bindings\"\nimport { empty } from \"./signed-extensions/utils\"\n\nexport const getCreateTx = (\n chainHead: ChainHead$,\n): ((\n signer: PolkadotSigner,\n callData: Uint8Array,\n atBlock: BlockInfo,\n hinted?: HintedSignedExtensions,\n) => Observable<Uint8Array>) => {\n return (signer, callData, atBlock, hinted) => {\n return chainHead.getRuntimeContext$(atBlock.hash).pipe(\n take(1),\n mergeMap((ctx) => {\n const signedExtensionsCtx = {\n metadata: ctx.metadata,\n chainHead: chainHead,\n callData: callData,\n at: atBlock.hash,\n from: signer.publicKey,\n }\n\n const mortality = hinted?.mortality?.mortal\n ? { period: hinted.mortality.period, blockNumber: atBlock.number }\n : undefined\n\n return combineLatest(\n ctx.metadata.extrinsic.signedExtensions.map(\n ({ identifier, type, additionalSigned }) => {\n if (identifier === \"CheckMortality\")\n return CheckMortality(mortality, signedExtensionsCtx)\n\n if (identifier === \"ChargeTransactionPayment\")\n return ChargeTransactionPayment(hinted?.tip ?? 0n)\n\n if (identifier === \"ChargeAssetTxPayment\")\n return ChargeAssetTxPayment(hinted?.tip ?? 0n, hinted?.asset)\n\n const fn = chainSignedExtensions[identifier as \"CheckGenesis\"]\n if (!fn) {\n if (\n ctx.dynamicBuilder.buildDefinition(type) === _void &&\n ctx.dynamicBuilder.buildDefinition(additionalSigned) === _void\n )\n return of({\n value: empty,\n additionalSigned: empty,\n })\n\n throw new Error(`Unsupported signed-extension: ${identifier}`)\n }\n return fn(signedExtensionsCtx)\n },\n ),\n ).pipe(\n mergeMap((signedExtensions) =>\n signer.sign(\n callData,\n Object.fromEntries(\n ctx.metadata.extrinsic.signedExtensions.map(\n ({ identifier }, idx) => [\n identifier,\n { identifier, ...signedExtensions[idx] },\n ],\n ),\n ),\n ctx.metadataRaw,\n atBlock.number,\n ),\n ),\n )\n }),\n )\n }\n}\n","import { compactBn } from \"@polkadot-api/substrate-bindings\"\nimport { of } from \"rxjs\"\nimport { empty } from \"../utils\"\nimport { SignedExtension } from \"../internal-types\"\n\nexport const ChargeTransactionPayment = (tip: bigint): SignedExtension =>\n of({\n value: compactBn.enc(tip),\n additionalSigned: empty,\n })\n","import { map, noop, of } from \"rxjs\"\nimport {\n V15,\n Storage,\n Twox64Concat,\n u32,\n} from \"@polkadot-api/substrate-bindings\"\nimport { getDynamicBuilder, getLookupFn } from \"@polkadot-api/metadata-builders\"\nimport { fromHex } from \"@polkadot-api/utils\"\nimport type { ChainExtensionCtx } from \"./internal-types\"\n\nexport const empty = new Uint8Array()\n\nconst genesisHashStorageKey = Storage(\"System\")(\"BlockHash\", noop, [\n u32,\n Twox64Concat,\n]).enc(0)\n\nexport const genesisHashFromCtx = (ctx: ChainExtensionCtx) =>\n ctx.chainHead\n .storage$(ctx.at, \"value\", () => genesisHashStorageKey, null)\n .pipe(map((result) => fromHex(result!)))\n\nexport const systemVersionProp$ = (propName: string, metadata: V15) => {\n const lookupFn = getLookupFn(metadata.lookup)\n const dynamicBuilder = getDynamicBuilder(metadata)\n\n const constant = metadata.pallets\n .find((x) => x.name === \"System\")!\n .constants!.find((s) => s.name === \"Version\")!\n\n const systemVersion = lookupFn(constant.type)\n const systemVersionDec = dynamicBuilder.buildDefinition(constant.type).dec\n\n if (systemVersion.type !== \"struct\") throw new Error(\"not a struct\")\n\n const valueEnc = dynamicBuilder.buildDefinition(\n systemVersion.value[propName].id,\n ).enc\n\n return of(valueEnc(systemVersionDec(constant.value)[propName]))\n}\n","import { map, of } from \"rxjs\"\nimport { Bytes, enhanceEncoder, u16 } from \"@polkadot-api/substrate-bindings\"\nimport { fromHex } from \"@polkadot-api/utils\"\nimport { genesisHashFromCtx } from \"../utils\"\nimport { ChainExtensionCtx, SignedExtension } from \"../internal-types\"\n\nfunction trailingZeroes(n: number) {\n let i = 0\n while (!(n & 1)) {\n i++\n n >>= 1\n }\n return i\n}\n\nconst mortal = enhanceEncoder(\n Bytes(2).enc,\n (value: { period: number; phase: number }) => {\n const factor = Math.max(value.period >> 12, 1)\n const left = Math.min(Math.max(trailingZeroes(value.period) - 1, 1), 15)\n const right = (value.phase / factor) << 4\n return u16.enc(left | right)\n },\n)\n\nconst zero = new Uint8Array([0])\nexport const CheckMortality = (\n input: { period: number; blockNumber: number } | undefined,\n ctx: ChainExtensionCtx,\n): SignedExtension => {\n if (!input)\n return genesisHashFromCtx(ctx).pipe(\n map((additionalSigned) => ({\n additionalSigned,\n value: zero,\n })),\n )\n\n const { period, blockNumber } = input\n return of({\n additionalSigned: fromHex(ctx.at),\n value: mortal({\n period,\n phase: blockNumber % period,\n }),\n })\n}\n","import { of } from \"rxjs\"\nimport {\n Bytes,\n Option,\n Struct,\n compact,\n} from \"@polkadot-api/substrate-bindings\"\nimport { empty } from \"../utils\"\nimport { SignedExtension } from \"../internal-types\"\n\nconst encoder = Struct({\n tip: compact,\n asset: Option(Bytes(Infinity)),\n}).enc\n\nexport const ChargeAssetTxPayment = (\n tip: number | bigint,\n asset: Uint8Array | undefined,\n): SignedExtension =>\n of({\n value: encoder({\n tip,\n asset,\n }),\n additionalSigned: empty,\n })\n","export * from \"./CheckGenesis\"\nexport * from \"./CheckNonce\"\nexport * from \"./CheckSpecVersion\"\nexport * from \"./CheckTxVersion\"\n","import { map } from \"rxjs\"\nimport type { GetChainSignedExtension } from \"../internal-types\"\nimport { empty, genesisHashFromCtx } from \"../utils\"\n\nexport const CheckGenesis: GetChainSignedExtension = (ctx) =>\n genesisHashFromCtx(ctx).pipe(\n map((additionalSigned) => ({ value: empty, additionalSigned })),\n )\n","import { map } from \"rxjs\"\nimport { compact, u16, u32, u64, u8 } from \"@polkadot-api/substrate-bindings\"\nimport type { GetChainSignedExtension } from \"../internal-types\"\nimport { empty } from \"../utils\"\nimport { fromHex, toHex } from \"@polkadot-api/utils\"\n\nconst lenToDecoder = {\n 1: u8.dec,\n 2: u16.dec,\n 4: u32.dec,\n 8: u64.dec,\n}\n\nexport const CheckNonce: GetChainSignedExtension = (ctx) =>\n ctx.chainHead\n .call$(ctx.at, \"AccountNonceApi_account_nonce\", toHex(ctx.from))\n .pipe(\n map((result) => {\n const bytes = fromHex(result)\n const decoder = lenToDecoder[bytes.length as 2 | 4 | 8]\n if (!decoder)\n throw new Error(\"AccountNonceApi_account_nonce retrieved wrong data\")\n return compact.enc(decoder(bytes))\n }),\n map((value) => ({ value, additionalSigned: empty })),\n )\n","import { map } from \"rxjs\"\nimport type { GetChainSignedExtension } from \"../internal-types\"\nimport { empty, systemVersionProp$ } from \"../utils\"\n\nexport const CheckSpecVersion: GetChainSignedExtension = ({ metadata }) =>\n systemVersionProp$(\"spec_version\", metadata).pipe(\n map((additionalSigned) => ({ additionalSigned, value: empty })),\n )\n","import { map } from \"rxjs\"\nimport type { GetChainSignedExtension } from \"../internal-types\"\nimport { empty, systemVersionProp$ } from \"../utils\"\n\nexport const CheckTxVersion: GetChainSignedExtension = ({ metadata }) =>\n systemVersionProp$(\"transaction_version\", metadata).pipe(\n map((additionalSigned) => ({ additionalSigned, value: empty })),\n )\n","export type {\n Codec,\n SS58String,\n HexString,\n GetEnum,\n PlainDescriptor,\n AssetDescriptor,\n TxDescriptor,\n StorageDescriptor,\n QueryFromDescriptors,\n TxFromDescriptors,\n EventsFromDescriptors,\n ErrorsFromDescriptors,\n ConstFromDescriptors,\n RuntimeDescriptor,\n ResultPayload,\n FixedSizeBinary,\n} from \"@polkadot-api/substrate-bindings\"\nexport {\n AccountId,\n Binary,\n Enum,\n _Enum,\n} from \"@polkadot-api/substrate-bindings\"\n"],"mappings":"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","names":["firstValueFrom","map","checksums","isCompatible","compatibilityHelper","map","firstValueFrom","map","Observable","Observable","compatibilityHelper","map","firstValueFrom","filter","map","mergeMap","compatibilityHelper","map","isOptionalArg","compatibilityHelper","isCompatible","toHex","Observable","firstValueFrom","map","mergeMap","mergeMap","map","Observable","compatibilityHelper","arg","firstValueFrom","toHex","combineLatest","mergeMap","of","take","of","map","noop","of","of","map","of","fromHex","map","of","fromHex","of","Bytes","Bytes","of","map","map","map","compact","u16","u32","fromHex","toHex","u16","u32","map","compact","map","map","map","map","take","mergeMap","combineLatest","of","firstValueFrom","Binary","Enum"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@polkadot-api/logs-provider';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@polkadot-api/logs-provider';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
|
|
17
|
+
// src/reexports/logs-provider.ts
|
|
18
|
+
var logs_provider_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(logs_provider_exports);
|
|
20
|
+
__reExport(logs_provider_exports, require("@polkadot-api/logs-provider"), module.exports);
|
|
21
|
+
//# sourceMappingURL=logs-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/reexports/logs-provider.ts"],"sourcesContent":["export * from \"@polkadot-api/logs-provider\"\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,kCAAc,wCAAd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/reexports/logs-provider.ts"],"sourcesContent":["export * from \"@polkadot-api/logs-provider\"\n"],"mappings":";AAAA,cAAc;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@polkadot-api/logs-provider';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(r,o,f,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of c(o))!d.call(r,e)&&e!==f&&a(r,e,{get:()=>o[e],enumerable:!(x=b(o,e))||x.enumerable});return r},t=(r,o,f)=>(p(r,o,"default"),f&&p(f,o,"default"));var g=r=>p(a({},"__esModule",{value:!0}),r);var m={};module.exports=g(m);t(m,require("@polkadot-api/logs-provider"),module.exports);
|
|
2
|
+
//# sourceMappingURL=logs-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/reexports/logs-provider.ts"],"sourcesContent":["export * from \"@polkadot-api/logs-provider\"\n"],"mappings":"iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,uCAAd","names":["logs_provider_exports","__toCommonJS","__reExport"]}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { HexString, Enum, Binary, Descriptors, QueryFromDescriptors, TxFromDescriptors, EventsFromDescriptors, ConstFromDescriptors, BlockHeader, RuntimeDescriptor } from '@polkadot-api/substrate-bindings';
|
|
2
|
+
export { AccountId, AssetDescriptor, Binary, Codec, ConstFromDescriptors, Enum, ErrorsFromDescriptors, EventsFromDescriptors, FixedSizeBinary, GetEnum, HexString, PlainDescriptor, QueryFromDescriptors, ResultPayload, RuntimeDescriptor, SS58String, StorageDescriptor, TxDescriptor, TxFromDescriptors, _Enum } from '@polkadot-api/substrate-bindings';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { BlockInfo, SystemEvent as SystemEvent$1 } from '@polkadot-api/observable-client';
|
|
5
|
+
import { JsonRpcProvider } from '@polkadot-api/json-rpc-provider';
|
|
6
|
+
export { PolkadotSigner } from '@polkadot-api/polkadot-signer';
|
|
7
|
+
|
|
8
|
+
declare class Runtime {
|
|
9
|
+
protected _ctx: unknown;
|
|
10
|
+
protected _checksums: string[];
|
|
11
|
+
private constructor();
|
|
12
|
+
}
|
|
13
|
+
type RuntimeApi = Observable<Runtime> & {
|
|
14
|
+
latest: () => Promise<Runtime>;
|
|
15
|
+
};
|
|
16
|
+
interface IsCompatible {
|
|
17
|
+
(): Promise<boolean>;
|
|
18
|
+
(runtime: Runtime): boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type EventPhase = {
|
|
22
|
+
type: "ApplyExtrinsic";
|
|
23
|
+
value: number;
|
|
24
|
+
} | {
|
|
25
|
+
type: "Finalization";
|
|
26
|
+
} | {
|
|
27
|
+
type: "Initialization";
|
|
28
|
+
};
|
|
29
|
+
type EvWatch<T> = (filter?: (value: T) => boolean) => Observable<{
|
|
30
|
+
meta: {
|
|
31
|
+
block: BlockInfo;
|
|
32
|
+
phase: EventPhase;
|
|
33
|
+
};
|
|
34
|
+
payload: T;
|
|
35
|
+
}>;
|
|
36
|
+
type EvPull<T> = () => Promise<Array<{
|
|
37
|
+
meta: {
|
|
38
|
+
block: BlockInfo;
|
|
39
|
+
phase: EventPhase;
|
|
40
|
+
};
|
|
41
|
+
payload: T;
|
|
42
|
+
}>>;
|
|
43
|
+
type EvFilter<T> = (collection: SystemEvent["event"][]) => Array<T>;
|
|
44
|
+
type EvClient<T> = {
|
|
45
|
+
watch: EvWatch<T>;
|
|
46
|
+
pull: EvPull<T>;
|
|
47
|
+
filter: EvFilter<T>;
|
|
48
|
+
isCompatible: IsCompatible;
|
|
49
|
+
};
|
|
50
|
+
type SystemEvent = {
|
|
51
|
+
phase: EventPhase;
|
|
52
|
+
event: {
|
|
53
|
+
type: string;
|
|
54
|
+
value: {
|
|
55
|
+
type: string;
|
|
56
|
+
value: any;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
topics: Array<any>;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
type CallOptions$1 = Partial<{
|
|
63
|
+
at: string;
|
|
64
|
+
signal: AbortSignal;
|
|
65
|
+
}>;
|
|
66
|
+
type WithCallOptions$1<Args extends Array<any>> = [
|
|
67
|
+
...args: Args,
|
|
68
|
+
options?: CallOptions$1
|
|
69
|
+
];
|
|
70
|
+
type PossibleParents<A extends Array<any>> = A extends [...infer Left, any] ? Left | PossibleParents<Left> : [];
|
|
71
|
+
type StorageEntryWithoutKeys<Payload> = {
|
|
72
|
+
isCompatible: IsCompatible;
|
|
73
|
+
getValue: (options?: CallOptions$1) => Promise<Payload>;
|
|
74
|
+
watchValue: (bestOrFinalized?: "best" | "finalized") => Observable<Payload>;
|
|
75
|
+
};
|
|
76
|
+
type StorageEntryWithKeys<Args extends Array<any>, Payload> = {
|
|
77
|
+
isCompatible: IsCompatible;
|
|
78
|
+
getValue: (...args: [...WithCallOptions$1<Args>]) => Promise<Payload>;
|
|
79
|
+
watchValue: (...args: [...Args, bestOrFinalized?: "best" | "finalized"]) => Observable<Payload>;
|
|
80
|
+
getValues: (keys: Array<[...Args]>, options?: CallOptions$1) => Promise<Array<Payload>>;
|
|
81
|
+
getEntries: (...args: WithCallOptions$1<PossibleParents<Args>>) => Promise<Array<{
|
|
82
|
+
keyArgs: Args;
|
|
83
|
+
value: NonNullable<Payload>;
|
|
84
|
+
}>>;
|
|
85
|
+
};
|
|
86
|
+
type StorageEntry<Args extends Array<any>, Payload> = Args extends [] ? StorageEntryWithoutKeys<Payload> : StorageEntryWithKeys<Args, Payload>;
|
|
87
|
+
|
|
88
|
+
interface PolkadotSigner {
|
|
89
|
+
publicKey: Uint8Array;
|
|
90
|
+
sign: (callData: Uint8Array, signedExtensions: Record<string, {
|
|
91
|
+
identifier: string;
|
|
92
|
+
value: Uint8Array;
|
|
93
|
+
additionalSigned: Uint8Array;
|
|
94
|
+
}>, metadata: Uint8Array, atBlockNumber: number, hasher?: (data: Uint8Array) => Uint8Array) => Promise<Uint8Array>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
type TxBroadcastEvent = {
|
|
98
|
+
type: "broadcasted";
|
|
99
|
+
} | {
|
|
100
|
+
type: "bestChainBlockIncluded";
|
|
101
|
+
block: {
|
|
102
|
+
hash: string;
|
|
103
|
+
index: number;
|
|
104
|
+
};
|
|
105
|
+
} | ({
|
|
106
|
+
type: "finalized";
|
|
107
|
+
} & TxFinalizedPayload);
|
|
108
|
+
type TxEvent = TxBroadcastEvent | {
|
|
109
|
+
type: "signed";
|
|
110
|
+
tx: HexString;
|
|
111
|
+
};
|
|
112
|
+
type TxFinalizedPayload = {
|
|
113
|
+
ok: boolean;
|
|
114
|
+
events: Array<SystemEvent$1["event"]>;
|
|
115
|
+
block: {
|
|
116
|
+
hash: string;
|
|
117
|
+
index: number;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
type TxFunction<Asset> = (from: PolkadotSigner, hintedSignExtensions?: Partial<void extends Asset ? {
|
|
121
|
+
tip: bigint;
|
|
122
|
+
mortal: {
|
|
123
|
+
mortal: false;
|
|
124
|
+
} | {
|
|
125
|
+
mortal: true;
|
|
126
|
+
period: number;
|
|
127
|
+
};
|
|
128
|
+
} : {
|
|
129
|
+
tip: bigint;
|
|
130
|
+
mortal: {
|
|
131
|
+
mortal: false;
|
|
132
|
+
} | {
|
|
133
|
+
mortal: true;
|
|
134
|
+
period: number;
|
|
135
|
+
};
|
|
136
|
+
asset: Asset;
|
|
137
|
+
}>) => Promise<TxFinalizedPayload>;
|
|
138
|
+
type TxObservable<Asset> = (from: PolkadotSigner, hintedSignExtensions?: Partial<void extends Asset ? {
|
|
139
|
+
tip: bigint;
|
|
140
|
+
mortal: {
|
|
141
|
+
mortal: false;
|
|
142
|
+
} | {
|
|
143
|
+
mortal: true;
|
|
144
|
+
period: number;
|
|
145
|
+
};
|
|
146
|
+
} : {
|
|
147
|
+
tip: bigint;
|
|
148
|
+
mortal: {
|
|
149
|
+
mortal: false;
|
|
150
|
+
} | {
|
|
151
|
+
mortal: true;
|
|
152
|
+
period: number;
|
|
153
|
+
};
|
|
154
|
+
asset: Asset;
|
|
155
|
+
}>) => Observable<TxEvent>;
|
|
156
|
+
interface TxCall {
|
|
157
|
+
(): Promise<Binary>;
|
|
158
|
+
(runtime: Runtime): Binary;
|
|
159
|
+
}
|
|
160
|
+
type TxSigned<Asset> = (from: PolkadotSigner, hintedSignExtensions?: Partial<void extends Asset ? {
|
|
161
|
+
tip: bigint;
|
|
162
|
+
mortal: {
|
|
163
|
+
mortal: false;
|
|
164
|
+
} | {
|
|
165
|
+
mortal: true;
|
|
166
|
+
period: number;
|
|
167
|
+
};
|
|
168
|
+
} : {
|
|
169
|
+
tip: bigint;
|
|
170
|
+
mortal: {
|
|
171
|
+
mortal: false;
|
|
172
|
+
} | {
|
|
173
|
+
mortal: true;
|
|
174
|
+
period: number;
|
|
175
|
+
};
|
|
176
|
+
asset: Asset;
|
|
177
|
+
}>) => Promise<string>;
|
|
178
|
+
type Transaction<Arg extends {} | undefined, Pallet extends string, Name extends string, Asset> = {
|
|
179
|
+
sign: TxSigned<Asset>;
|
|
180
|
+
signSubmitAndWatch: TxObservable<Asset>;
|
|
181
|
+
signAndSubmit: TxFunction<Asset>;
|
|
182
|
+
getEncodedData: TxCall;
|
|
183
|
+
decodedCall: Enum<{
|
|
184
|
+
type: Pallet;
|
|
185
|
+
value: Enum<{
|
|
186
|
+
type: Name;
|
|
187
|
+
value: Arg;
|
|
188
|
+
}>;
|
|
189
|
+
}>;
|
|
190
|
+
};
|
|
191
|
+
interface TxEntry<Arg extends {} | undefined, Pallet extends string, Name extends string, Asset> {
|
|
192
|
+
(...args: Arg extends undefined ? [] : [data: Arg]): Transaction<Arg, Pallet, Name, Asset>;
|
|
193
|
+
isCompatible: IsCompatible;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
interface ConstantEntry<T> {
|
|
197
|
+
(): Promise<T>;
|
|
198
|
+
(runtime: Runtime): T;
|
|
199
|
+
isCompatible: IsCompatible;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
type CallOptions = Partial<{
|
|
203
|
+
at: string;
|
|
204
|
+
signal: AbortSignal;
|
|
205
|
+
}>;
|
|
206
|
+
type WithCallOptions<Args extends Array<any>> = Args["length"] extends 0 ? [options?: CallOptions] : [...args: Args, options?: CallOptions];
|
|
207
|
+
interface RuntimeCall<Args extends Array<any>, Payload> {
|
|
208
|
+
(...args: WithCallOptions<Args>): Promise<Payload>;
|
|
209
|
+
isCompatible: IsCompatible;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
type StorageApi<A extends Record<string, Record<string, {
|
|
213
|
+
KeyArgs: Array<any>;
|
|
214
|
+
Value: any;
|
|
215
|
+
IsOptional: false | true;
|
|
216
|
+
} | unknown>>> = {
|
|
217
|
+
[K in keyof A]: {
|
|
218
|
+
[KK in keyof A[K]]: A[K][KK] extends {
|
|
219
|
+
KeyArgs: Array<any>;
|
|
220
|
+
Value: any;
|
|
221
|
+
IsOptional: false | true;
|
|
222
|
+
} ? StorageEntry<A[K][KK]["KeyArgs"], A[K][KK]["IsOptional"] extends true ? A[K][KK]["Value"] | undefined : A[K][KK]["Value"]> : unknown;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
type RuntimeCallsApi<A extends Record<string, Record<string, RuntimeDescriptor<Array<any>, any>>>> = {
|
|
226
|
+
[K in keyof A]: {
|
|
227
|
+
[KK in keyof A[K]]: A[K][KK] extends RuntimeDescriptor<infer Args, infer Value> ? RuntimeCall<Args, Value> : unknown;
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
type TxApi<A extends Record<string, Record<string, any>>, Asset> = {
|
|
231
|
+
[K in keyof A]: {
|
|
232
|
+
[KK in keyof A[K]]: A[K][KK] extends {} | undefined ? TxEntry<A[K][KK], K & string, KK & string, Asset> : unknown;
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
type EvApi<A extends Record<string, Record<string, any>>> = {
|
|
236
|
+
[K in keyof A]: {
|
|
237
|
+
[KK in keyof A[K]]: EvClient<A[K][KK]>;
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
type ConstApi<A extends Record<string, Record<string, any>>> = {
|
|
241
|
+
[K in keyof A]: {
|
|
242
|
+
[KK in keyof A[K]]: ConstantEntry<A[K][KK]>;
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
type TypedApi<D extends Descriptors> = {
|
|
246
|
+
query: StorageApi<QueryFromDescriptors<D>>;
|
|
247
|
+
tx: TxApi<TxFromDescriptors<D>, D["asset"]["_type"]>;
|
|
248
|
+
event: EvApi<EventsFromDescriptors<D>>;
|
|
249
|
+
apis: RuntimeCallsApi<D["apis"]>;
|
|
250
|
+
constants: ConstApi<ConstFromDescriptors<D>>;
|
|
251
|
+
runtime: RuntimeApi;
|
|
252
|
+
};
|
|
253
|
+
interface PolkadotClient {
|
|
254
|
+
finalized$: Observable<BlockInfo>;
|
|
255
|
+
bestBlocks$: Observable<BlockInfo[]>;
|
|
256
|
+
getBlockHeader: (hash?: string) => Promise<BlockHeader>;
|
|
257
|
+
getBlockBody: (hash: string) => Observable<HexString[]>;
|
|
258
|
+
getTypedApi: <D extends Descriptors>(descriptors: D) => TypedApi<D>;
|
|
259
|
+
destroy: () => void;
|
|
260
|
+
submit: (transaction: HexString) => Promise<TxFinalizedPayload>;
|
|
261
|
+
submitAndWatch: (transaction: HexString) => Observable<TxBroadcastEvent>;
|
|
262
|
+
}
|
|
263
|
+
type FixedSizeArray<L extends number, T> = Array<T> & {
|
|
264
|
+
length: L;
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
declare function createClient(provider: JsonRpcProvider): PolkadotClient;
|
|
268
|
+
|
|
269
|
+
export { type EventPhase, type FixedSizeArray, type PolkadotClient, type TxBroadcastEvent, type TxEvent, type TxFinalizedPayload, type TypedApi, createClient };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var L=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var We=Object.prototype.hasOwnProperty;var Le=(e,t,n)=>t in e?L(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var se=(e,t)=>{for(var n in t)L(e,n,{get:t[n],enumerable:!0})},Ue=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Me(t))!We.call(e,l)&&l!==n&&L(e,l,{get:()=>t[l],enumerable:!(r=_e(t,l))||r.enumerable});return e};var Ne=e=>Ue(L({},"__esModule",{value:!0}),e);var X=(e,t,n)=>(Le(e,typeof t!="symbol"?t+"":t,n),n);var it={};se(it,{AccountId:()=>$.AccountId,Binary:()=>$.Binary,Enum:()=>$.Enum,_Enum:()=>$._Enum,createClient:()=>ot});module.exports=Ne(it);var He=require("@polkadot-api/substrate-client"),De=require("rxjs");var U=require("rxjs");var T=require("rxjs");var te=class{constructor(t,n){X(this,"_ctx");X(this,"_checksums");this._ctx=t,this._checksums=n}};function V(e){return e._ctx}function ae(e,t){return e._checksums[t]}var ee=(e,t)=>new te(e,t),le=(e,t)=>{let n,r=null;n=new Promise(a=>{r=a});let l=(0,T.combineLatest)([t.runtime$,e]);l.subscribe(([a,c])=>{a?r?(r(ee(a,c)),r=null):n=Promise.resolve(ee(a,c)):r||(n=new Promise(p=>{r=p}))});let s=l.pipe((0,T.filter)(([a])=>!!a),(0,T.map)(([a,c])=>ee(a,c)));return s.latest=()=>n,s},I=(e,t)=>n=>{function r(p){let d=V(p),u=ae(p,t);return n(d)===u}let l=p=>p?r(p):e.latest().then(r),s=async()=>{let p=await e.latest();return d=>n(d)===ae(p,t)};return{isCompatible:l,waitChecksums:s,withCompatibleRuntime:(p,d,u)=>y=>(0,T.combineLatest)([y.pipe(p.withRuntime(d)),s()]).pipe((0,T.map)(([[i,o],m])=>{if(!m(o))throw u();return[i,o]})),compatibleRuntime$:(p,d,u)=>(0,T.combineLatest)([p.getRuntimeContext$(d),s()]).pipe((0,T.map)(([y,i])=>{if(!i(y))throw u();return y}))}};var pe=(e,t,n,r)=>{let{isCompatible:l,compatibleRuntime$:s}=r(u=>u.checksumBuilder.buildConstant(e,t)),a=()=>new Error(`Incompatible runtime entry Constant(${e}.${t})`),c=new WeakMap,p=u=>{if(c.has(u))return c.get(u);let i=u.metadata.pallets.find(m=>m.name===e)?.constants.find(m=>m.name===t),o=u.dynamicBuilder.buildConstant(e,t).dec(i.value);return c.set(u,o),o};return Object.assign(u=>{if(u){if(!l(u))throw a();return p(V(u))}return(0,U.firstValueFrom)(s(n,null,a).pipe((0,U.map)(p)))},{isCompatible:l})};var B=require("rxjs");var N=require("rxjs"),me=(0,N.share)({connector:()=>new N.ReplaySubject(1),resetOnError:!0,resetOnComplete:!0,resetOnRefCountZero:!0});var ce=require("@polkadot-api/utils"),ue=require("rxjs");function z(e,t){return new Promise((n,r)=>{let l=null,s=!1,a=t?()=>{l?.unsubscribe(),r(new ce.AbortError)}:ue.noop;l=e.subscribe({next:c=>{n(c),l?.unsubscribe(),s=!0},error:c=>{t?.removeEventListener("abort",a),r(c)},complete:()=>{t?.removeEventListener("abort",a),r(new Error("Observable completed without emitting"))}}),s||t?.addEventListener("abort",a)})}var G=require("rxjs"),ye=(e,t=1/0)=>n=>new G.Observable(r=>{let l,s=new Map,a=new Map,c=new Map,p=0,d=0,u=0,y=()=>{let i=s.get(d);if(!i){a.size===0&&(typeof l>"u"||l.closed)&&r.complete();return}let o=d++;s.delete(o),u!==o&&c.set(o,[]),a.set(o,i.subscribe({next(m){u===o?r.next(m):c.get(o).push(m)},complete(){if(a.delete(o),o===u)for(u++;c.has(u)&&(c.get(u).forEach(m=>r.next(m)),c.delete(u),!a.has(u));)u++;y()},error(m){r.error(m)}}))};return l=n.subscribe({next(i){let o=p++;s.set(o,(0,G.defer)(()=>e(i,o))),a.size<t&&y()},error(i){r.error(i)},complete(){a.size===0&&r.complete()}}),()=>{a.forEach(i=>i.unsubscribe()),l.unsubscribe(),s.clear(),c.clear()}});var de=require("rxjs"),ne=Symbol("EMPTY_VALUE"),be=e=>t=>new de.Observable(n=>{let r=null,l=ne,s=!1,a=()=>{let p=e(l);l=ne,r=p.subscribe({next(d){n.next(d)},error(d){n.error(d)},complete(){l!==ne?a():(r=null,s&&n.complete())}})},c=t.subscribe({next(p){l=p,r||a()},error(p){n.error(p)},complete(){r||n.complete(),s=!0}});return()=>{r?.unsubscribe(),c.unsubscribe()}});var fe=(e,t,n,r)=>{let{isCompatible:l,withCompatibleRuntime:s}=r(y=>y.checksumBuilder.buildEvent(e,t)),a=()=>new Error(`Incompatible runtime entry Event(${e}.${t})`),c=n.finalized$.pipe(s(n,y=>y.hash,a),ye(([y])=>n.eventsAt$(y.hash).pipe((0,B.map)(i=>i.filter(m=>m.event.type===e&&m.event.value.type===t).map(m=>({meta:{phase:m.phase,block:y},payload:m.event.value.value}))))),me);return{watch:y=>c.pipe((0,B.mergeMap)(i=>y?i.filter(o=>y(o.payload)):i)),pull:()=>(0,B.firstValueFrom)(c),filter:y=>y.filter(i=>i.type===e&&i.value.type===t).map(i=>i.value.value),isCompatible:l}};var Ve=require("@polkadot-api/observable-client");var ge=require("@polkadot-api/utils"),j=require("rxjs"),Ge=e=>typeof e!="object"?!1:Object.keys(e).every(t=>t==="at"&&typeof e.at=="string"||t==="signal"&&e.signal instanceof AbortSignal),xe=(e,t,n,r)=>{let{isCompatible:l,compatibleRuntime$:s}=r(d=>d.checksumBuilder.buildRuntimeCall(e,t)),a=`${e}_${t}`,c=()=>new Error(`Incompatible runtime entry RuntimeCall(${a})`);return Object.assign((...d)=>{let u=d[d.length-1],y=Ge(u),{signal:i,at:o}=y?u:{},m=o??null,v=s(n,m,c).pipe((0,j.mergeMap)(h=>{let A=h.dynamicBuilder.buildRuntimeCall(e,t);return n.call$(m,a,(0,ge.toHex)(A.args.enc(d))).pipe((0,j.map)(A.value.dec))}));return z(v,i)},{isCompatible:l})};var w=require("rxjs"),he=e=>typeof e!="object"?!1:Object.keys(e).every(t=>t==="at"&&typeof e.at=="string"||t==="signal"&&e.signal instanceof AbortSignal),Ce=(e,t,n,r)=>{let{isCompatible:l,waitChecksums:s,withCompatibleRuntime:a}=r(o=>o.checksumBuilder.buildStorage(e,t)),c=()=>new Error(`Incompatible runtime entry Storage(${e}.${t})`),p=o=>new Error(`Invalid Arguments calling ${e}.${t}(${o})`),d=(...o)=>{let m=o[o.length-1],v=m==="best"||m==="finalized"?o.slice(0,-1):o;return n[m==="best"?"best$":"finalized$"].pipe((0,w.debounceTime)(0),a(n,h=>h.hash,c),be(([h,A])=>{let R=A.dynamicBuilder.buildStorage(e,t);return n.storage$(h.hash,"value",()=>R.enc(...v)).pipe((0,w.map)(f=>({val:f,codecs:R})))}),(0,w.distinctUntilChanged)((h,A)=>h.val===A.val),(0,w.map)(({val:h,codecs:A})=>h===null?A.fallback:A.dec(h)))},u=async(...o)=>{let m=o[o.length-1],v=he(m),{signal:h,at:A}=v?m:{},R=A??null,f=await s(),C=n.storage$(R,"value",g=>{let E=g.dynamicBuilder.buildStorage(e,t),x=o.length===E.len?o:o.slice(0,-1);if(o!==x&&!v)throw p(o);if(!f(g))throw c();return E.enc(...x)},null,(g,E)=>{let x=E.dynamicBuilder.buildStorage(e,t);return g===null?x.fallback:x.dec(g)});return z(C,h)};return{isCompatible:l,getValue:u,getValues:(o,m)=>Promise.all(o.map(v=>u(...m?[...v,m]:v))),getEntries:async(...o)=>{let m=o[o.length-1],v=he(m),{signal:h,at:A}=v?m:{},R=A??null,f=await s(),C=n.storage$(R,"descendantsValues",g=>{let E=g.dynamicBuilder.buildStorage(e,t);if(o.length>E.len)throw p(o);let x=o.length>0&&v?o.slice(0,-1):o;if(o.length===E.len&&x===o)throw p(o);if(!f(g))throw c();return E.enc(...x)},null,(g,E)=>{let x=E.dynamicBuilder.buildStorage(e,t);return g.map(({key:W,value:Q})=>({keyArgs:x.keyDecoder(W),value:x.dec(Q)}))});return z(C,h)},watchValue:d}};var _=require("@polkadot-api/substrate-bindings"),M=require("@polkadot-api/utils"),b=require("rxjs");var je=(e,t)=>{let n=e.filter(s=>s.phase.type==="ApplyExtrinsic"&&s.phase.value===t).map(s=>s.event),r=n[n.length-1];return{ok:r.type==="System"&&r.value.type==="ExtrinsicSuccess",events:n}},Ee=(e,t)=>{let n=s=>(0,b.concat)(e.finalized$.pipe((0,b.take)(1),(0,b.mergeMap)(a=>e.validateTx$(s,a.hash)),(0,b.map)(a=>{if(!a)throw new Error("Invalid");return{type:"broadcasted"}})),new b.Observable(a=>{let c=e.trackTx$(s).subscribe(a);return c.add(t.broadcastTx$(s).subscribe({error(p){a.error(p)}})),c})),r=s=>n(s).pipe((0,b.mergeMap)(a=>a.type!=="finalized"?(0,b.of)(a):e.eventsAt$(a.block.hash).pipe((0,b.map)(c=>({...a,...je(c,Number(a.block.index))})))));return{submit$:r,submit:async s=>(0,b.lastValueFrom)(r(s)).then(a=>{if(a.type!=="finalized")throw null;let c={...a};return delete c.type,c})}},ve=(e,t,n,r,l,s,a)=>{let{isCompatible:c,compatibleRuntime$:p}=a(y=>y.checksumBuilder.buildCall(e,t)),d=()=>new Error(`Incompatible runtime entry Tx(${e}.${t})`);return Object.assign(y=>{let i=({dynamicBuilder:f,asset:[C,g]},E,x={})=>{let W=x;if(x.asset){if(n!==g)throw new Error("Incompatible runtime asset");W={...x,asset:C(x.asset)}}let{location:Q,codec:ze}=f.buildCall(e,t);return{callData:_.Binary.fromBytes((0,M.mergeUint8)(new Uint8Array(Q),ze.enc(E))),hinted:W}},o=(f,C={})=>p(r,null,d).pipe((0,b.map)(g=>i(g,f,C))),m=f=>{if(f){if(!c(f))throw d();return i(V(f),y).callData}return(0,b.firstValueFrom)(o(y).pipe((0,b.map)(C=>C.callData)))},v=(f,C)=>o(y,C).pipe((0,b.withLatestFrom)(r.finalized$),(0,b.take)(1),(0,b.mergeMap)(([{callData:g,hinted:E},x])=>s(f,g.asBytes(),x,E))),h=(f,C)=>(0,b.firstValueFrom)(v(f,C)).then(M.toHex),A=(f,C)=>h(f,C).then(l.submit),R=(f,C)=>v(f,C).pipe((0,b.mergeMap)(g=>{let E=(0,M.toHex)(g);return l.submit$(E).pipe((0,b.startWith)({type:"signed",tx:E}))}));return{decodedCall:(0,_.Enum)(e,(0,_.Enum)(t,y)),getEncodedData:m,sign:h,signSubmitAndWatch:R,signAndSubmit:A}},{isCompatible:c})};var k=require("rxjs");var Se=require("@polkadot-api/substrate-bindings"),Te=require("rxjs");var F=require("rxjs"),H=require("@polkadot-api/substrate-bindings"),K=require("@polkadot-api/metadata-builders"),Ae=require("@polkadot-api/utils"),S=new Uint8Array,Ke=(0,H.Storage)("System")("BlockHash",F.noop,[H.u32,H.Twox64Concat]).enc(0),Y=e=>e.chainHead.storage$(e.at,"value",()=>Ke,null).pipe((0,F.map)(t=>(0,Ae.fromHex)(t))),q=(e,t)=>{let n=(0,K.getLookupFn)(t.lookup),r=(0,K.getDynamicBuilder)(t),l=t.pallets.find(p=>p.name==="System").constants.find(p=>p.name==="Version"),s=n(l.type),a=r.buildDefinition(l.type).dec;if(s.type!=="struct")throw new Error("not a struct");let c=r.buildDefinition(s.value[e].id).enc;return(0,F.of)(c(a(l.value)[e]))};var Pe=e=>(0,Te.of)({value:Se.compactBn.enc(e),additionalSigned:S});var J=require("rxjs"),D=require("@polkadot-api/substrate-bindings"),ke=require("@polkadot-api/utils");function Ye(e){let t=0;for(;!(e&1);)t++,e>>=1;return t}var qe=(0,D.enhanceEncoder)((0,D.Bytes)(2).enc,e=>{let t=Math.max(e.period>>12,1),n=Math.min(Math.max(Ye(e.period)-1,1),15),r=e.phase/t<<4;return D.u16.enc(n|r)}),Je=new Uint8Array([0]),Re=(e,t)=>{if(!e)return Y(t).pipe((0,J.map)(l=>({additionalSigned:l,value:Je})));let{period:n,blockNumber:r}=e;return(0,J.of)({additionalSigned:(0,ke.fromHex)(t.at),value:qe({period:n,phase:r%n})})};var Oe=require("rxjs"),O=require("@polkadot-api/substrate-bindings");var Ze=(0,O.Struct)({tip:O.compact,asset:(0,O.Option)((0,O.Bytes)(1/0))}).enc,$e=(e,t)=>(0,Oe.of)({value:Ze({tip:e,asset:t}),additionalSigned:S});var oe={};se(oe,{CheckGenesis:()=>Qe,CheckNonce:()=>et,CheckSpecVersion:()=>tt,CheckTxVersion:()=>nt});var we=require("rxjs");var Qe=e=>Y(e).pipe((0,we.map)(t=>({value:S,additionalSigned:t})));var re=require("rxjs"),P=require("@polkadot-api/substrate-bindings");var Z=require("@polkadot-api/utils"),Xe={1:P.u8.dec,2:P.u16.dec,4:P.u32.dec,8:P.u64.dec},et=e=>e.chainHead.call$(e.at,"AccountNonceApi_account_nonce",(0,Z.toHex)(e.from)).pipe((0,re.map)(t=>{let n=(0,Z.fromHex)(t),r=Xe[n.length];if(!r)throw new Error("AccountNonceApi_account_nonce retrieved wrong data");return P.compact.enc(r(n))}),(0,re.map)(t=>({value:t,additionalSigned:S})));var Ie=require("rxjs");var tt=({metadata:e})=>q("spec_version",e).pipe((0,Ie.map)(t=>({additionalSigned:t,value:S})));var Be=require("rxjs");var nt=({metadata:e})=>q("transaction_version",e).pipe((0,Be.map)(t=>({additionalSigned:t,value:S})));var ie=require("@polkadot-api/substrate-bindings");var Fe=e=>(t,n,r,l)=>e.getRuntimeContext$(r.hash).pipe((0,k.take)(1),(0,k.mergeMap)(s=>{let a={metadata:s.metadata,chainHead:e,callData:n,at:r.hash,from:t.publicKey},c=l?.mortality?.mortal?{period:l.mortality.period,blockNumber:r.number}:void 0;return(0,k.combineLatest)(s.metadata.extrinsic.signedExtensions.map(({identifier:p,type:d,additionalSigned:u})=>{if(p==="CheckMortality")return Re(c,a);if(p==="ChargeTransactionPayment")return Pe(l?.tip??0n);if(p==="ChargeAssetTxPayment")return $e(l?.tip??0n,l?.asset);let y=oe[p];if(!y){if(s.dynamicBuilder.buildDefinition(d)===ie._void&&s.dynamicBuilder.buildDefinition(u)===ie._void)return(0,k.of)({value:S,additionalSigned:S});throw new Error(`Unsupported signed-extension: ${p}`)}return y(a)})).pipe((0,k.mergeMap)(p=>t.sign(n,Object.fromEntries(s.metadata.extrinsic.signedExtensions.map(({identifier:d},u)=>[d,{identifier:d,...p[u]}])),s.metadataRaw,r.number)))}));var rt=(e,t,n,r)=>{let l=le(e.checksums,n),{pallets:s,apis:a}=e,c={};for(let i in s){c[i]||(c[i]={});let[o]=s[i];for(let m in o)c[i][m]=Ce(i,m,n,I(l,o[m]))}let p={};for(let i in s){p[i]||(p[i]={});let[,o]=s[i];for(let m in o)p[i][m]=ve(i,m,e.asset,n,r,t,I(l,o[m]))}let d={};for(let i in s){d[i]||(d[i]={});let[,,o]=s[i];for(let m in o)d[i][m]=fe(i,m,n,I(l,o[m]))}let u={};for(let i in s){u[i]||(u[i]={});let[,,,,o]=s[i];for(let m in o)u[i][m]=pe(i,m,n,I(l,o[m]))}let y={};for(let i in a){y[i]||(y[i]={});let o=a[i];for(let m in o)y[i][m]=xe(i,m,n,I(l,o[m]))}return{query:c,tx:p,event:d,apis:y,constants:u,runtime:l}};function ot(e){let t=(0,He.createClient)(e),n=(0,Ve.getObservableClient)(t),r=n.chainHead$(),l=Fe(r),s=Ee(r,n),{submit:a,submit$:c}=s;return{finalized$:r.finalized$,bestBlocks$:r.bestBlocks$,getBlockHeader:p=>(0,De.firstValueFrom)(r.header$(p??null)),getBlockBody:r.body$,destroy:()=>{r.unfollow(),n.destroy()},submit:a,submitAndWatch:c,getTypedApi:p=>rt(p,l,r,s)}}var $=require("@polkadot-api/substrate-bindings");
|
|
2
|
+
//# sourceMappingURL=index.js.map
|