ox
Version:
73 lines • 3.14 kB
TypeScript
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