mirror of
https://github.com/bigchaindb/js-bigchaindb-driver.git
synced 2024-11-24 19:10:12 +01:00
fix: add type definitions
This commit is contained in:
parent
cd5c529324
commit
5f6bef65c5
@ -15,6 +15,7 @@
|
|||||||
],
|
],
|
||||||
"main": "./dist/node/index.js",
|
"main": "./dist/node/index.js",
|
||||||
"browser": "./dist/browser/bigchaindb-driver.cjs2.min.js",
|
"browser": "./dist/browser/bigchaindb-driver.cjs2.min.js",
|
||||||
|
"types": "./types/index.d.ts",
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
|
10
types/Ed25519Keypair.d.ts
vendored
Normal file
10
types/Ed25519Keypair.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
export default class Ed25519Keypair {
|
||||||
|
publicKey: string;
|
||||||
|
privateKey: string;
|
||||||
|
|
||||||
|
constructor(seed?: Buffer);
|
||||||
|
}
|
31
types/baseRequest.d.ts
vendored
Normal file
31
types/baseRequest.d.ts
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
export interface RequestConfig {
|
||||||
|
headers?: Record<string, string | string[]>;
|
||||||
|
jsonBody?: Record<string, any>;
|
||||||
|
query?: Record<string, any>;
|
||||||
|
method?: 'GET' | ' POST' | 'PUT';
|
||||||
|
urlTemplateSpec?: any[] | Record<string, any>;
|
||||||
|
[key: string]: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ResponseError(
|
||||||
|
message: string,
|
||||||
|
status?: number,
|
||||||
|
requestURI?: string
|
||||||
|
): void;
|
||||||
|
|
||||||
|
declare function timeout<T = Response>(
|
||||||
|
ms: number,
|
||||||
|
promise: Promise<T>
|
||||||
|
): Promise<T>;
|
||||||
|
|
||||||
|
declare function handleResponse(res: Response): Response;
|
||||||
|
|
||||||
|
export default function baseRequest(
|
||||||
|
url: string,
|
||||||
|
config: RequestConfig = {},
|
||||||
|
requestTimeout?: number
|
||||||
|
): Promise<Response>;
|
162
types/connection.d.ts
vendored
Normal file
162
types/connection.d.ts
vendored
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import type { RequestConfig } from './baseRequest';
|
||||||
|
import type { Node } from './request';
|
||||||
|
import type Transport from './transport';
|
||||||
|
import type {
|
||||||
|
CreateTransaction,
|
||||||
|
TransactionOperations,
|
||||||
|
TransferTransaction,
|
||||||
|
TransactionCommon,
|
||||||
|
} from './transaction';
|
||||||
|
|
||||||
|
declare const HEADER_BLACKLIST = ['content-type'];
|
||||||
|
declare const DEFAULT_NODE = 'http://localhost:9984/api/v1/';
|
||||||
|
declare const DEFAULT_TIMEOUT = 20000; // The default value is 20 seconds
|
||||||
|
|
||||||
|
export interface InputNode {
|
||||||
|
endpoint: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum Endpoints {
|
||||||
|
blocks = 'blocks',
|
||||||
|
blocksDetail = 'blocksDetail',
|
||||||
|
outputs = 'outputs',
|
||||||
|
transactions = 'transactions',
|
||||||
|
transactionsSync = 'transactionsSync',
|
||||||
|
transactionsAsync = 'transactionsAsync',
|
||||||
|
transactionsCommit = 'transactionsCommit',
|
||||||
|
transactionsDetail = 'transactionsDetail',
|
||||||
|
assets = 'assets',
|
||||||
|
metadata = 'metadata',
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EndpointsUrl {
|
||||||
|
[Endpoints.blocks]: 'blocks';
|
||||||
|
[Endpoints.blocksDetail]: 'blocks/%(blockHeight)s';
|
||||||
|
[Endpoints.outputs]: 'outputs';
|
||||||
|
[Endpoints.transactions]: 'transactions';
|
||||||
|
[Endpoints.transactionsSync]: 'transactions?mode=sync';
|
||||||
|
[Endpoints.transactionsAsync]: 'transactions?mode=async';
|
||||||
|
[Endpoints.transactionsCommit]: 'transactions?mode=commit';
|
||||||
|
[Endpoints.transactionsDetail]: 'transactions/%(transactionId)s';
|
||||||
|
[Endpoints.assets]: 'assets';
|
||||||
|
[Endpoints.metadata]: 'metadata';
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EndpointsResponse<
|
||||||
|
O = TransactionOperations.CREATE,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
> {
|
||||||
|
[Endpoints.blocks]: number[];
|
||||||
|
[Endpoints.blocksDetail]: {
|
||||||
|
height: number;
|
||||||
|
transactions: (CreateTransaction | TransferTransaction)[];
|
||||||
|
};
|
||||||
|
[Endpoints.outputs]: {
|
||||||
|
transaction_id: string;
|
||||||
|
output_index: number;
|
||||||
|
}[];
|
||||||
|
[Endpoints.transactions]: O extends TransactionOperations.CREATE
|
||||||
|
? CreateTransaction[]
|
||||||
|
: O extends TransactionOperations.TRANSFER
|
||||||
|
? TransferTransaction[]
|
||||||
|
: (CreateTransaction | TransferTransaction)[];
|
||||||
|
[Endpoints.transactionsSync]: O extends TransactionOperations.CREATE
|
||||||
|
? CreateTransaction<A, M>
|
||||||
|
: TransferTransaction<M>;
|
||||||
|
[Endpoints.transactionsAsync]: O extends TransactionOperations.CREATE
|
||||||
|
? CreateTransaction<A, M>
|
||||||
|
: TransferTransaction<M>;
|
||||||
|
[Endpoints.transactionsCommit]: O extends TransactionOperations.CREATE
|
||||||
|
? CreateTransaction<A, M>
|
||||||
|
: TransferTransaction<M>;
|
||||||
|
[Endpoints.transactionsDetail]: O extends TransactionOperations.CREATE
|
||||||
|
? CreateTransaction<A, M>
|
||||||
|
: TransferTransaction<M>;
|
||||||
|
[Endpoints.assets]: { id: string; data: Record<string, any> }[];
|
||||||
|
[Endpoints.metadata]: { id: string; metadata: Record<string, any> }[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Connection {
|
||||||
|
private transport: Transport;
|
||||||
|
private normalizedNodes: Node[];
|
||||||
|
private headers: Record<string, string | string[]>;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
nodes: string | InputNode | (string | InputNode)[],
|
||||||
|
headers: Record<string, string | string[]> = {},
|
||||||
|
timeout?: number
|
||||||
|
);
|
||||||
|
|
||||||
|
static normalizeNode(
|
||||||
|
node: string | InputNode,
|
||||||
|
headers: Record<string, string | string[]>
|
||||||
|
): Node;
|
||||||
|
|
||||||
|
static getApiUrls<E = Endpoint>(endpoint: E): EndpointsUrl[E];
|
||||||
|
|
||||||
|
private _req<E = Endpoint, O = Record<string, any>>(
|
||||||
|
path: EndpointsUrl[E],
|
||||||
|
options: RequestConfig = {}
|
||||||
|
): Promise<O>;
|
||||||
|
|
||||||
|
getBlock(
|
||||||
|
blockHeight: number | string
|
||||||
|
): Promise<EndpointsUrl[Endpoints.blocksDetail]>;
|
||||||
|
|
||||||
|
getTransaction<O = TransactionOperations.CREATE>(
|
||||||
|
transactionId: string
|
||||||
|
): Promise<EndpointsUrl<O>[Endpoints.transactionsDetail]>;
|
||||||
|
|
||||||
|
listBlocks(transactionId: string): Promise<EndpointsUrl[Endpoints.blocks]>;
|
||||||
|
|
||||||
|
listOutputs(
|
||||||
|
publicKey: string,
|
||||||
|
spent?: boolean
|
||||||
|
): Promise<EndpointsUrl[Endpoints.outputs]>;
|
||||||
|
|
||||||
|
listTransactions<O = TransactionOperations.CREATE>(
|
||||||
|
assetId: string,
|
||||||
|
operation: O
|
||||||
|
): Promise<EndpointsUrl<O>[Endpoints.transactions]>;
|
||||||
|
|
||||||
|
postTransaction<
|
||||||
|
O = TransactionOperations.CREATE,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
transaction: TransactionCommon<O>
|
||||||
|
): Promise<EndpointsUrl<O, A, M>[Endpoints.transactionsCommit]>;
|
||||||
|
|
||||||
|
postTransactionSync<
|
||||||
|
O = TransactionOperations.CREATE,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
transaction: TransactionCommon<O>
|
||||||
|
): Promise<EndpointsUrl<O, A, M>[Endpoints.transactionsSync]>;
|
||||||
|
|
||||||
|
postTransactionAsync<
|
||||||
|
O = TransactionOperations.CREATE,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
transaction: TransactionCommon<O>
|
||||||
|
): Promise<EndpointsUrl<O, A, M>[Endpoints.transactionsAsync]>;
|
||||||
|
|
||||||
|
postTransactionCommit<
|
||||||
|
O = TransactionOperations.CREATE,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
transaction: TransactionCommon<O>
|
||||||
|
): Promise<EndpointsUrl<O, A, M>[Endpoints.transactionsCommit]>;
|
||||||
|
|
||||||
|
searchAssets(search: string): Promise<EndpointsUrl[Endpoints.assets]>;
|
||||||
|
|
||||||
|
searchMetadata(search: string): Promise<EndpointsUrl[Endpoints.metadata]>;
|
||||||
|
}
|
11
types/index.d.ts
vendored
Normal file
11
types/index.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import Ed25519Keypair from './Ed25519Keypair'
|
||||||
|
import Connection from './connection'
|
||||||
|
import Transaction from './transaction'
|
||||||
|
import ccJsonLoad from './utils/ccJsonLoad'
|
||||||
|
import ccJsonify from './utils/ccJsonify'
|
||||||
|
|
||||||
|
export { ccJsonLoad, ccJsonify, Connection, Ed25519Keypair, Transaction }
|
32
types/request.d.ts
vendored
Normal file
32
types/request.d.ts
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import type { RequestConfig } from './baseRequest';
|
||||||
|
|
||||||
|
export interface Node {
|
||||||
|
endpoint: string;
|
||||||
|
headers: Record<string, string | string[]>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Request {
|
||||||
|
private node: Node;
|
||||||
|
private backoffTime: number;
|
||||||
|
private retries: number;
|
||||||
|
private connectionError?: Error;
|
||||||
|
|
||||||
|
constructor(node: Node);
|
||||||
|
|
||||||
|
async request<O = Record<string, any>>(
|
||||||
|
urlPath: string,
|
||||||
|
config: RequestConfig = {},
|
||||||
|
timeout?: number,
|
||||||
|
maxBackoffTime?: number
|
||||||
|
): Promise<O>;
|
||||||
|
|
||||||
|
updateBackoffTime(maxBackoffTime: number): void;
|
||||||
|
|
||||||
|
getBackoffTimedelta(): number;
|
||||||
|
|
||||||
|
static sleep(ms: number): void;
|
||||||
|
}
|
25
types/sanitize.d.ts
vendored
Normal file
25
types/sanitize.d.ts
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
declare type FilterFn = (val: any, key?: string) => void;
|
||||||
|
|
||||||
|
declare function filterFromObject<I = Record<string, any>>(
|
||||||
|
obj: I,
|
||||||
|
filter: Array | FilterFn,
|
||||||
|
conf: { isInclusion?: boolean } = {}
|
||||||
|
): Partial<I>;
|
||||||
|
|
||||||
|
declare function applyFilterOnObject<I = Record<string, any>>(
|
||||||
|
obj: I,
|
||||||
|
filterFn?: FilterFn
|
||||||
|
): Partial<I>;
|
||||||
|
|
||||||
|
declare function selectFromObject<I = Record<string, any>>(
|
||||||
|
obj: I,
|
||||||
|
filter: Array | FilterFn
|
||||||
|
): Partial<I>;
|
||||||
|
|
||||||
|
export default function sanitize<I = Record<string, any>>(
|
||||||
|
obj: I
|
||||||
|
): Partial<I> | I;
|
206
types/transaction.d.ts
vendored
Normal file
206
types/transaction.d.ts
vendored
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
import type {
|
||||||
|
Ed25519Sha256,
|
||||||
|
Fulfillment,
|
||||||
|
PreimageSha256,
|
||||||
|
ThresholdSha256,
|
||||||
|
} from 'crypto-conditions';
|
||||||
|
import {
|
||||||
|
Ed25519Sha256JSONCondition,
|
||||||
|
JSONCondition,
|
||||||
|
PreimageSha256JSONCondition,
|
||||||
|
ThresholdSha256JSONCondition,
|
||||||
|
} from './utils/ccJsonify';
|
||||||
|
|
||||||
|
export interface TransactionInput {
|
||||||
|
fulfillment: string;
|
||||||
|
fulfills: {
|
||||||
|
output_index: number;
|
||||||
|
transaction_id: string;
|
||||||
|
} | null;
|
||||||
|
owners_before: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransactionOutput {
|
||||||
|
amount: string;
|
||||||
|
// TODO: specifiy JSON conditions
|
||||||
|
condition: any[];
|
||||||
|
public_keys: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum TransactionOperations {
|
||||||
|
CREATE = 'CREATE',
|
||||||
|
TRANSFER = 'TRANSFER',
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransactionCommon<
|
||||||
|
O = TransactionOperations,
|
||||||
|
A = Record<string, unknown>,
|
||||||
|
M = Record<string, unknown>
|
||||||
|
> {
|
||||||
|
id?: string;
|
||||||
|
inputs: TransactionInput[];
|
||||||
|
outputs: TransactionOutput[];
|
||||||
|
version: string;
|
||||||
|
metadata: M;
|
||||||
|
operation: O;
|
||||||
|
asset: TransactionAssetMap<O, A>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransactionCommonSigned<
|
||||||
|
O = TransactionOperations,
|
||||||
|
A = Record<string, unknown>,
|
||||||
|
M = Record<string, unknown>
|
||||||
|
> extends Omit<TransactionCommon<O, A, M>, 'id'> {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type TransactionAssetMap<
|
||||||
|
Operation,
|
||||||
|
A = Record<string, unknown>
|
||||||
|
> = Operation extends TransactionOperations.CREATE
|
||||||
|
? {
|
||||||
|
data: A;
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
id: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface CreateTransaction<
|
||||||
|
A = Record<string, unknown>,
|
||||||
|
M = Record<string, unknown>
|
||||||
|
> extends TransactionCommon<TransactionOperations.CREATE, A, M> {
|
||||||
|
id: string;
|
||||||
|
asset: TransactionAssetMap<TransactionOperations.CREATE, A>;
|
||||||
|
operation: TransactionOperations.CREATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransferTransaction<M = Record<string, unknown>>
|
||||||
|
extends TransactionCommon<TransactionOperations.TRANSFER, any, M> {
|
||||||
|
id: string;
|
||||||
|
asset: TransactionAssetMap<TransactionOperations.TRANSFER>;
|
||||||
|
operation: TransactionOperations.TRANSFER;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TxTemplate {
|
||||||
|
id: null;
|
||||||
|
operation: null;
|
||||||
|
outputs: [];
|
||||||
|
inputs: [];
|
||||||
|
metadata: null;
|
||||||
|
asset: null;
|
||||||
|
version: '2.0';
|
||||||
|
}
|
||||||
|
|
||||||
|
declare function DelegateSignFunction(
|
||||||
|
serializedTransaction: string,
|
||||||
|
input: TransactionInput,
|
||||||
|
index?: number
|
||||||
|
): string;
|
||||||
|
|
||||||
|
export default class Transaction {
|
||||||
|
static serializeTransactionIntoCanonicalString(
|
||||||
|
transaction: CreateTransaction | TransferTransaction
|
||||||
|
): string;
|
||||||
|
|
||||||
|
static makeEd25519Condition(
|
||||||
|
publicKey: string,
|
||||||
|
json = true
|
||||||
|
): Ed25519Sha256JSONCondition;
|
||||||
|
|
||||||
|
static makeEd25519Condition(publicKey: string, json = false): Ed25519Sha256;
|
||||||
|
|
||||||
|
// static makeEd25519Condition(publicKey: string): Ed25519Sha256JSONCondition;
|
||||||
|
|
||||||
|
static makeEd25519Condition(
|
||||||
|
publicKey: string,
|
||||||
|
json?: boolean
|
||||||
|
): Ed25519Sha256 | Ed25519Sha256JSONCondition;
|
||||||
|
|
||||||
|
static makeSha256Condition(
|
||||||
|
preimage: string,
|
||||||
|
json = true
|
||||||
|
): PreimageSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeSha256Condition(preimage: string, json = false): PreimageSha256;
|
||||||
|
|
||||||
|
// static makeSha256Condition(preimage: string): PreimageSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeSha256Condition(
|
||||||
|
preimage: string,
|
||||||
|
json?: boolean
|
||||||
|
): PreimageSha256 | PreimageSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeThresholdCondition(
|
||||||
|
threshold: number,
|
||||||
|
subconditions: (string | Fulfillment)[],
|
||||||
|
json = true
|
||||||
|
): ThresholdSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeThresholdCondition(
|
||||||
|
threshold: number,
|
||||||
|
subconditions: (string | Fulfillment)[],
|
||||||
|
json = false
|
||||||
|
): ThresholdSha256;
|
||||||
|
|
||||||
|
// static makeThresholdCondition(
|
||||||
|
// threshold: number,
|
||||||
|
// subconditions: (string | Fulfillment)[]
|
||||||
|
// ): ThresholdSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeThresholdCondition(
|
||||||
|
threshold: number,
|
||||||
|
subconditions: (string | Fulfillment)[],
|
||||||
|
json?: boolean
|
||||||
|
): ThresholdSha256 | ThresholdSha256JSONCondition;
|
||||||
|
|
||||||
|
static makeInputTemplate(
|
||||||
|
publicKeys: string[],
|
||||||
|
fulfills?: TransactionInput['fulfills'],
|
||||||
|
fulfillment?: TransactionInput['fulfillment']
|
||||||
|
): TransactionInput;
|
||||||
|
|
||||||
|
static makeOutput(
|
||||||
|
condition: JSONCondition,
|
||||||
|
amount: string
|
||||||
|
): TransactionOutput;
|
||||||
|
|
||||||
|
static makeTransactionTemplate(): TxTemplate;
|
||||||
|
|
||||||
|
static makeTransaction<
|
||||||
|
O extends keyof TransactionOperations,
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
operation: O,
|
||||||
|
asset: A,
|
||||||
|
metadata: M,
|
||||||
|
outputs: TransactionOutput[],
|
||||||
|
inputs: TransactionInput[]
|
||||||
|
): TransactionCommon<O, A, M>;
|
||||||
|
|
||||||
|
static makeCreateTransaction<
|
||||||
|
A = Record<string, any>,
|
||||||
|
M = Record<string, any>
|
||||||
|
>(
|
||||||
|
asset: A,
|
||||||
|
metadata: M,
|
||||||
|
outputs: TransactionOutput[],
|
||||||
|
...issuers: string[]
|
||||||
|
): CreateTransaction<A, M>;
|
||||||
|
|
||||||
|
static makeTransferTransaction<M = Record<string, any>>(
|
||||||
|
unspentOutputs: TransactionOutput[],
|
||||||
|
outputs: TransactionOutput[],
|
||||||
|
metadata: M
|
||||||
|
): TransferTransaction<M>;
|
||||||
|
|
||||||
|
static signTransaction<O = TransactionOperations.CREATE>(
|
||||||
|
transaction: TransactionCommon<O>,
|
||||||
|
...privateKeys: string[]
|
||||||
|
): TransactionCommonSigned<O>;
|
||||||
|
|
||||||
|
static delegateSignTransaction<O = TransactionOperations.CREATE>(
|
||||||
|
transaction: TransactionCommon<O>,
|
||||||
|
signFn: DelegateSignFunction
|
||||||
|
): TransactionCommonSigned<O>;
|
||||||
|
}
|
21
types/transport.d.ts
vendored
Normal file
21
types/transport.d.ts
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import Request, { Node } from './request';
|
||||||
|
import type { RequestConfig } from './baseRequest';
|
||||||
|
|
||||||
|
export default class Transport {
|
||||||
|
private connectionPool: Request[];
|
||||||
|
private timeout: number;
|
||||||
|
private maxBackoffTime: number;
|
||||||
|
|
||||||
|
constructor(nodes: Node[], timeout: number);
|
||||||
|
|
||||||
|
pickConnection(): Request;
|
||||||
|
|
||||||
|
async forwardRequest<O = Record<string, any>>(
|
||||||
|
path: string,
|
||||||
|
config: RequestConfig
|
||||||
|
): Promise<O>;
|
||||||
|
}
|
11
types/utils/ccJsonLoad.d.ts
vendored
Normal file
11
types/utils/ccJsonLoad.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import type { Condition, Fulfillment } from 'crypto-conditions';
|
||||||
|
import type { JSONCondition } from './ccJsonify';
|
||||||
|
|
||||||
|
// TODO: improve returned type accuracy
|
||||||
|
export default function ccJsonLoad<T = TypeId.Ed25519Sha256>(
|
||||||
|
conditionJson: JSONCondition[T]
|
||||||
|
): Condition | Fulfillment;
|
48
types/utils/ccJsonify.d.ts
vendored
Normal file
48
types/utils/ccJsonify.d.ts
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Copyright BigchainDB GmbH and BigchainDB contributors
|
||||||
|
// SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
||||||
|
// Code is Apache-2.0 and docs are CC-BY-4.0
|
||||||
|
|
||||||
|
import type { Condition, Fulfillment } from 'crypto-conditions';
|
||||||
|
import type { TypeId } from 'crypto-conditions/types/types';
|
||||||
|
|
||||||
|
interface BaseJSONCondition {
|
||||||
|
details: {
|
||||||
|
type: TypeName;
|
||||||
|
hash?: string;
|
||||||
|
max_fulfillment_length?: number;
|
||||||
|
type?: 'fulfillement' | 'condition';
|
||||||
|
[key: string]: any;
|
||||||
|
};
|
||||||
|
uri: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Ed25519Sha256JSONCondition extends BaseJSONCondition {
|
||||||
|
details: { type: TypeName.Ed25519Sha256; publicKey?: string };
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PreimageSha256JSONCondition extends BaseJSONCondition {
|
||||||
|
details: {
|
||||||
|
type: TypeName.PreimageSha256;
|
||||||
|
type_id: 0;
|
||||||
|
bitmask: 3;
|
||||||
|
preimage?: string;
|
||||||
|
type?: 'fulfillement';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ThresholdSha256JSONCondition extends BaseJSONCondition {
|
||||||
|
details: {
|
||||||
|
type: TypeName.ThresholdSha256;
|
||||||
|
subConditions: (Ed25519Sha256JSONCondition | PreimageSha256JSONCondition)[];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JSONCondition {
|
||||||
|
[TypeId.ThresholdSha256]: ThresholdSha256JSONCondition;
|
||||||
|
[TypeId.PreimageSha256]: PreimageSha256JSONCondition;
|
||||||
|
[TypeId.Ed25519Sha256]: Ed25519Sha256JSONCondition;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function ccJsonify<T = TypeId.Ed25519Sha256>(
|
||||||
|
fulfillment: Fulfillment | Condition
|
||||||
|
): JSONCondition[T];
|
Loading…
Reference in New Issue
Block a user