import AbstractDLT from '@quantnetwork/overledger-dlt-abstract'; import { Account, TransactionRequest, ValidationCheck } from '@quantnetwork/overledger-types'; import WorkflowCorda from './DLTSpecificTypes/WorkflowCorda'; /** * @memberof module:overledger-dlt-corda */ declare class Corda extends AbstractDLT { account: Account; /** * Name of the DLT */ name: string; /** * Symbol of the DLT */ symbol: string; /** * @param {any} sdk - the sdk instance */ constructor(sdk: any); /** * Create an Corda account * * @return {Account} the new Corda account */ createAccount(): Account; /** * Set an account for this specific DLT * * @param {Account} accountInfo The standardised account information */ setAccount(accountInfo: Account): void; /** * Takes the Overledger definition of a transaction and converts it into a specific Corda transaction */ buildTransaction(): void; /** * Takes the Overledger definition of a Corda workflow and converts it into a specific Corda Workflow * @param {WorkflowCorda} thisTransaction - details on the information to include in this workflow for the Corda distributed ledger node * @return {Workflow} the Corda transaction */ buildWorkflow(thisWorkflow: WorkflowCorda): Workflow; /** * Creates a new UUID */ create_UUID(): string; /** * validates an OVL transactionRequest according to Corda specific rules */ _transactionValidation(): ValidationCheck; /** * Get the information required to query for a particular transaction hash */ getTransactionQueryInfo(transactionHash: string): string; /** * validates an OVL Corda workflow according to Corda specific rules * @param {WorkflowCorda} thisWorkflow - The workflow details */ workflowValidation(thisWorkflow: WorkflowCorda): ValidationCheck; /** * Takes in an overledger definition of a transaction for Corda, converts it into a form that the Corda distributed ledger will understand, and then signs the transaction * @param {TransactionRequest} thisTransaction - an instantiated overledger definition of an Corda transaction */ _sign(thisTransaction: TransactionRequest): Promise; /** * validates an OVL smart contract query according to Corda specific rules */ _smartContractQueryValidation(): ValidationCheck; /** * Allows a user to build a smart contract query for the Corda distributed ledger */ _buildSmartContractQuery(): Object; } export declare type Workflow = { overledgerTransactionId: string; dltMessageId: string; dlt: string; version: string; endpoint: string; reference: string; details: WorkflowDetails; }; export declare type WorkflowDetails = { tracking: boolean; cordappName: string; flowName: string; params: object; }; export default Corda;