2022-08-27 19:09:34 +00:00
|
|
|
import RpcQueryBase from "./base.js";
|
2022-08-27 19:12:20 +00:00
|
|
|
import RpcNetwork from "../network.js";
|
2022-08-29 02:14:33 +00:00
|
|
|
import type { RPCRequest } from "@lumeweb/relay-types";
|
2022-08-27 19:09:34 +00:00
|
|
|
import { RpcQueryOptions } from "../types.js";
|
|
|
|
import type { Buffer } from "buffer";
|
|
|
|
|
|
|
|
export default class SimpleRpcQuery extends RpcQueryBase {
|
|
|
|
private _relay: string | Buffer;
|
|
|
|
constructor(
|
|
|
|
network: RpcNetwork,
|
|
|
|
relay: string | Buffer,
|
|
|
|
query: RPCRequest,
|
|
|
|
options: RpcQueryOptions
|
|
|
|
) {
|
|
|
|
super(network, query, options);
|
|
|
|
this._relay = relay;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected checkResponses(): void {
|
|
|
|
if (Object.keys(this._responses).length) {
|
|
|
|
this.resolve(Object.values(this._responses).pop());
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Object.keys(this._errors).length) {
|
|
|
|
this.resolve({ error: Object.values(this._errors).pop() });
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected getRelays(): string[] | Buffer[] {
|
|
|
|
return [this._relay] as string[] | Buffer[];
|
|
|
|
}
|
|
|
|
}
|