import { Ticket, PublicKey, HoprDB } from '@hoprnet/hopr-utils'; import type { HalfKey, HalfKeyChallenge, ChannelEntry, Challenge } from '@hoprnet/hopr-utils'; import { AcknowledgementChallenge } from './acknowledgementChallenge.js'; import type { PeerId } from '@libp2p/interface-peer-id'; import BN from 'bn.js'; import { Acknowledgement } from './acknowledgement.js'; export declare const INTERMEDIATE_HOPS = 3; /** * Creates a signed ticket that includes the given amount of * tokens * @dev Due to a missing feature, namely ECMUL, in Ethereum, the * challenge is given as an Ethereum address because the signature * recovery algorithm is used to perform an EC-point multiplication. * @param amount value of the ticket * @param challenge challenge to solve in order to redeem the ticket * @param winProb the winning probability to use * @returns a signed ticket */ export declare function createTicket(dest: PublicKey, pathLength: number, challenge: Challenge, db: HoprDB, privKey: PeerId): Promise; /** * Creates a ticket without any value * @param dest recipient of the ticket * @param challenge challenge to solve * @param privKey private key of the sender * @returns a ticket */ export declare function createZeroHopTicket(dest: PublicKey, challenge: Challenge, privKey: PeerId): Ticket; /** * Validate unacknowledged tickets as we receive them. * Out of order validation is allowed. Ordering is enforced * when tickets are redeemed. */ export declare function validateUnacknowledgedTicket(themPeerId: PeerId, minTicketAmount: BN, reqInverseTicketWinProb: BN, ticket: Ticket, channel: ChannelEntry, getTickets: () => Promise, checkUnrealizedBalance: boolean): Promise; export declare class Packet { private packet; private challenge; ticket: Ticket; isReceiver: boolean; isReadyToForward: boolean; plaintext: Uint8Array; packetTag: Uint8Array; previousHop: PublicKey; nextHop: Uint8Array; ownShare: HalfKeyChallenge; ownKey: HalfKey; ackKey: HalfKey; nextChallenge: Challenge; ackChallenge: HalfKeyChallenge; oldChallenge: AcknowledgementChallenge; constructor(packet: Uint8Array, challenge: AcknowledgementChallenge, ticket: Ticket); private setReadyToForward; private setFinal; private setForward; static create(msg: Uint8Array, path: PeerId[], privKey: PeerId, db: HoprDB): Promise; serialize(): Uint8Array; static get SIZE(): number; static deserialize(preArray: Uint8Array, privKey: PeerId, pubKeySender: PeerId): Packet; checkPacketTag(db: HoprDB): Promise; storeUnacknowledgedTicket(db: HoprDB): Promise; storePendingAcknowledgement(db: HoprDB): Promise; validateUnacknowledgedTicket(db: HoprDB, checkUnrealizedBalance: boolean): Promise; createAcknowledgement(privKey: PeerId): Acknowledgement; forwardTransform(privKey: PeerId, db: HoprDB): Promise; } //# sourceMappingURL=packet.d.ts.map