UNPKG

ox

Version:

Ethereum Standard Library

43 lines 1.5 kB
import * as Address from '../core/Address.js'; import * as TokenId from './TokenId.js'; const zeroAddress = '0x0000000000000000000000000000000000000000'; /** * 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 function from(value) { const { authorizedSigner = zeroAddress, expiringNonceHash, operator = zeroAddress, payee, payer, salt, token, } = value; return { authorizedSigner: resolveAddress(authorizedSigner), expiringNonceHash, operator: resolveAddress(operator), payee: resolveAddress(payee), payer: resolveAddress(payer), salt, token: typeof token === 'string' ? resolveAddress(token) : TokenId.toAddress(token), }; } function resolveAddress(address) { return Address.from(address); } //# sourceMappingURL=ChannelDescriptor.js.map