import { ECPoint, TransactionBaseModelAdd, TransactionBaseModelAddWithType } from '@neo-one/client-common'; import BN from 'bn.js'; import { Account, AccountKey } from '../Account'; import { Asset, AssetKey } from '../Asset'; import { Validator } from '../Validator'; import { VerifyScript } from '../vm'; import { Witness } from '../Witness'; import { Attribute } from './attribute'; import { Input } from './Input'; import { Output, OutputKey } from './Output'; import { RegisterTransaction } from './RegisterTransaction'; import { Transaction } from './Transaction'; import { TransactionType } from './TransactionType'; export interface TransactionBaseAdd extends TransactionBaseModelAdd { } export interface TransactionBaseAddWithType extends TransactionBaseModelAddWithType { } export interface FeeContext { readonly getOutput: (input: Input) => Promise; readonly governingToken: RegisterTransaction; readonly utilityToken: RegisterTransaction; readonly fees: { [K in TransactionType]?: BN; }; readonly registerValidatorFee: BN; } export interface TransactionGetScriptHashesForVerifyingOptions { readonly getOutput: (key: OutputKey) => Promise; readonly getAsset: (key: AssetKey) => Promise; } export interface GetReferencesOptions { readonly getOutput: (key: OutputKey) => Promise; } export interface GetTransactionResultsOptions { readonly getOutput: (key: OutputKey) => Promise; } export interface TransactionVerifyOptions { readonly calculateClaimAmount: (inputs: readonly Input[]) => Promise; readonly isSpent: (key: OutputKey) => Promise; readonly getAsset: (key: AssetKey) => Promise; readonly getOutput: (key: OutputKey) => Promise; readonly tryGetAccount: (key: AccountKey) => Promise; readonly standbyValidators: readonly ECPoint[]; readonly getAllValidators: () => Promise; readonly verifyScript: VerifyScript; readonly currentHeight: number; readonly governingToken: RegisterTransaction; readonly utilityToken: RegisterTransaction; readonly fees: { [K in TransactionType]?: BN; }; readonly registerValidatorFee: BN; readonly memPool?: readonly Transaction[]; }