UNPKG

ox

Version:

Ethereum Standard Library

73 lines 3.14 kB
import * as Address from '../core/Address.js'; import type * as Errors from '../core/Errors.js'; import type * as Hex from '../core/Hex.js'; import * as TokenId from './TokenId.js'; /** * TIP-20 channel reserve descriptor. * * Descriptors identify a channel without reading chain state. They are emitted * by `open` and reused by `settle`, `topUp`, `close`, `requestClose`, and * `withdraw`. */ export type ChannelDescriptor<addressType = Address.Address, tokenType = TokenId.TokenIdOrAddress<addressType>> = { /** Account that funded the channel and receives refunds. */ payer: addressType; /** Account that receives settled voucher payments. */ payee: addressType; /** Optional relayer allowed to submit `settle` for the payee. */ operator: addressType; /** TIP-20 token address held by the channel. */ token: tokenType; /** User-supplied salt to distinguish otherwise identical channels. */ salt: Hex.Hex; /** Optional signer for vouchers. Zero means `payer` signs. */ authorizedSigner: addressType; /** Transaction-derived hash assigned when the channel was opened. */ expiringNonceHash: Hex.Hex; }; /** Hex-address-normalized {@link ox#ChannelDescriptor.ChannelDescriptor}. */ export type Resolved = ChannelDescriptor<Address.Address, Address.Address>; /** * Instantiates a TIP-20 channel reserve descriptor. * * Accepts a TIP-20 token ID or address, and defaults `operator` and * `authorizedSigner` to the zero address. * * @example * ```ts twoslash * import { ChannelDescriptor } from 'ox/tempo' * * const descriptor = ChannelDescriptor.from({ * expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000002', * payee: '0x2222222222222222222222222222222222222222', * payer: '0x1111111111111111111111111111111111111111', * salt: '0x0000000000000000000000000000000000000000000000000000000000000001', * token: 1n, * }) * ``` * * @param value - The descriptor input. * @returns The normalized channel descriptor. */ export declare function from(value: from.Value): from.ReturnType; export declare namespace from { type Value = { /** Account that funded the channel and receives refunds. */ payer: Address.Address; /** Account that receives settled voucher payments. */ payee: Address.Address; /** Optional relayer allowed to submit `settle` for the payee. */ operator?: Address.Address | undefined; /** TIP-20 token address or ID held by the channel. */ token: TokenId.TokenIdOrAddress<Address.Address>; /** User-supplied salt to distinguish otherwise identical channels. */ salt: Hex.Hex; /** Optional signer for vouchers. Zero means `payer` signs. */ authorizedSigner?: Address.Address | undefined; /** Transaction-derived hash assigned when the channel was opened. */ expiringNonceHash: Hex.Hex; }; type ReturnType = Resolved; type ErrorType = Address.from.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Errors.GlobalErrorType; } //# sourceMappingURL=ChannelDescriptor.d.ts.map