pegasys-orchestrate
Version:
The PegaSys Orchestrate library provides convenient access to the Codefi Orchestrate API from applications written in server-side JavaScript
84 lines (83 loc) • 2.27 kB
TypeScript
import { ParsedQs } from 'qs';
import { IGasPricePolicy } from './IGasPricePolicy';
import { IJobResponse } from './IJob';
import { ProtocolType } from './ProtocolType';
interface IBaseRequest {
chain: string;
labels?: object;
}
export interface ISendTransactionRequest extends IBaseRequest {
params: ITransactionParams;
}
interface ITransactionParams extends IBaseTransactionParams, IPrivateTransactionParams {
to: string;
contractName: string;
contractTag?: string;
methodSignature: string;
gasPricePolicy?: IGasPricePolicy;
oneTimeKey?: boolean;
}
export interface IDeployContractRequest extends IBaseRequest {
params: IDeployContractParams;
}
interface IDeployContractParams extends IBaseTransactionParams, IPrivateTransactionParams {
contractName: string;
contractTag?: string;
gasPricePolicy?: IGasPricePolicy;
oneTimeKey?: boolean;
}
export interface ISendRawRequest extends IBaseRequest {
params: {
raw: string;
retryPolicy?: {
interval: string;
};
};
}
export interface ITransferRequest extends IBaseRequest {
params: {
from: string;
to: string;
value: string;
gas?: number;
gasPrice?: string;
maxFeePerGas?: string;
maxPriorityFeePerGas?: string;
transactionType?: string;
gasPricePolicy?: IGasPricePolicy;
};
}
export interface ISearchTransactionRequest extends ParsedQs {
idempotency_keys: string[];
}
export interface ITransaction {
uuid: string;
idempotencyKey: string;
chain: string;
params: IETHTransactionParams;
jobs: IJobResponse[];
createdAt: Date;
}
export interface IETHTransactionParams extends IBaseTransactionParams, IPrivateTransactionParams {
raw?: string;
}
interface IBaseTransactionParams {
from?: string;
value?: string;
gas?: number;
gasPrice?: string;
maxFeePerGas?: string;
maxPriorityFeePerGas?: string;
transactionType?: string;
accessList?: any[];
args?: any[];
}
interface IPrivateTransactionParams {
protocol?: ProtocolType;
privateFrom?: string;
privateFor?: string[];
mandatoryFor?: string[];
privacyGroupId?: string;
privacyFlag?: number;
}
export {};