@test-org122/hypernet-core
Version:
Hypernet Core. Represents the SDK for running the Hypernet Protocol.
78 lines • 5.16 kB
TypeScript
import { Payment, EthereumAddress, PublicIdentifier, ResultAsync, Result, BigNumber, HexString } from "@interfaces/objects";
import { NodeError, VectorError } from "@connext/vector-types";
import { AcceptPaymentError, CoreUninitializedError, InsufficientBalanceError, InvalidParametersError, LogicalError, MerchantConnectorError, MerchantValidationError, OfferMismatchError, RouterChannelUnknownError } from "@interfaces/objects/errors";
export interface IPaymentService {
/**
* Authorizes funds to a specified counterparty, with an amount, rate, & expiration date.
* @param counterPartyAccount the public identifier of the counterparty to authorize funds to
* @param totalAuthorized the total amount the counterparty is allowed to "pull"
* @param expirationDate the latest time in which the counterparty can pull funds. This must be after the full maturation date of totalAuthorized, as calculated via deltaAmount and deltaTime.
* @param deltaAmount The amount per deltaTime to authorize
* @param deltaTime the number of seconds after which deltaAmount will be authorized, up to the limit of totalAuthorized.
* @param requiredStake the amount of stake the counterparyt must put up as insurance
* @param paymentToken the (Ethereum) address of the payment token
* @param merchantUrl the registered URL for the merchant that will resolve any disputes.
*/
authorizeFunds(counterPartyAccount: PublicIdentifier, totalAuthorized: BigNumber, expirationDate: number, deltaAmount: string, deltaTime: number, requiredStake: BigNumber, paymentToken: EthereumAddress, merchantUrl: string): ResultAsync<Payment, RouterChannelUnknownError | CoreUninitializedError | VectorError | Error>;
/**
* Record a pull against a Pull Payment's authorized funds. Doesn't actually
* move any money.
*/
pullFunds(paymentId: string, amount: BigNumber): ResultAsync<Payment, RouterChannelUnknownError | CoreUninitializedError | VectorError | Error>;
/**
* Send funds to another person.
* @param counterPartyAccount the account we wish to send funds to
* @param amount the amount of funds to send
* @param expirationDate the date at which, if not accepted, this payment will expire/cancel
* @param requiredStake the amount of stake (in Hypertoken) required for the recipient to put up
* @param paymentToken the address of the payment token we are sending
* @param merchantUrl the registered URL for the merchant that will resolve any disputes.
*/
sendFunds(counterPartyAccount: PublicIdentifier, amount: string, expirationDate: number, requiredStake: string, paymentToken: EthereumAddress, merchantUrl: string): ResultAsync<Payment, RouterChannelUnknownError | CoreUninitializedError | NodeError | Error>;
/**
* Called by the person on the receiving end of a push payment,
* to accept the terms of the payment and put up the stake.
*/
acceptOffers(paymentIds: string[]): ResultAsync<Result<Payment, AcceptPaymentError>[], InsufficientBalanceError | AcceptPaymentError>;
/**
* Notify the service that a payment has been posted.
* @param paymentId
*/
paymentPosted(paymentId: HexString): ResultAsync<void, InvalidParametersError | RouterChannelUnknownError | CoreUninitializedError | VectorError>;
/** Notify the service that an insurance payment has resolved
* @param paymentId
*/
insuranceResolved(paymentId: HexString): ResultAsync<void, InvalidParametersError | RouterChannelUnknownError | CoreUninitializedError | VectorError>;
/**
* Notify the service that a payment has been completed.
* @param paymentId
*/
paymentCompleted(paymentId: string): ResultAsync<void, InvalidParametersError>;
/**
* Notify the service that a pull payment has been posted.
* @param paymentId
*/
pullRecorded(paymentId: string): ResultAsync<void, InvalidParametersError>;
/**
* Notify the service that a stake has been created/posted.
* @param paymentId
*/
stakePosted(paymentId: string): ResultAsync<void, CoreUninitializedError | OfferMismatchError | InvalidParametersError>;
/**
* Notify the service that an offer has been made.
* @param paymentId
* @param transferId
*/
offerReceived(paymentId: string): ResultAsync<void, LogicalError | RouterChannelUnknownError | CoreUninitializedError | NodeError | Error>;
/**
* A payment that is in the Accepted state may be disputed up to the expiration date.
* If the payment is disputed, it is sent to the dispute mediator, who will determine
* if the payment was proper. The dispute mediator can provide a signature to resolve
* the insurance transfer for an amount from 0 to the full value of Hypertoken.
* The method by which the mediator makes this determination is entirely up to the
* merchant.
* @param paymentId
*/
initiateDispute(paymentId: string): ResultAsync<Payment, InvalidParametersError | CoreUninitializedError | MerchantValidationError | MerchantConnectorError>;
}
//# sourceMappingURL=IPaymentService.d.ts.map