import { ECPoint, UInt160 } from '@neo-one/client-common-esnext-esm'; import { Action } from './action'; import { Asset } from './Asset'; import { Contract } from './Contract'; import { InvocationResult } from './invocationResult'; import { FeeContext, Input, InvocationTransaction, Transaction } from './transaction'; import { TransactionData } from './TransactionData'; import { BinaryReader } from './utils'; export { SerializeWire, SerializableWire, createSerializeWire } from '@neo-one/client-common-esnext-esm'; export interface DeserializeWireContext { readonly messageMagic: number; } export interface DeserializeWireBaseOptions { readonly context: DeserializeWireContext; readonly reader: BinaryReader; } export interface DeserializeWireOptions { readonly context: DeserializeWireContext; readonly buffer: Buffer; } export type DeserializeWireBase = (options: DeserializeWireBaseOptions) => T; export type DeserializeWire = (options: DeserializeWireOptions) => T; export function createDeserializeWire(deserializeWireBase: DeserializeWireBase): DeserializeWire { return (options) => deserializeWireBase({ context: options.context, reader: new BinaryReader(options.buffer), }); } export interface SerializableInvocationData { readonly asset: Asset | undefined; readonly contracts: ReadonlyArray; readonly deletedContractHashes: ReadonlyArray; readonly migratedContractHashes: ReadonlyArray<[UInt160, UInt160]>; readonly voteUpdates: ReadonlyArray<[UInt160, ReadonlyArray]>; readonly result: InvocationResult; readonly actions: ReadonlyArray; } export interface SerializeJSONContext { readonly addressVersion: number; readonly feeContext: FeeContext; readonly tryGetInvocationData: ( transaction: InvocationTransaction, ) => Promise; readonly tryGetTransactionData: (transaction: Transaction) => Promise; readonly getUnclaimed: (hash: UInt160) => Promise>; readonly getUnspent: (hash: UInt160) => Promise>; } export type SerializeJSON = (context: SerializeJSONContext) => TJSON | Promise; export interface SerializableJSON { readonly serializeJSON: SerializeJSON; }