ox
Version:
43 lines • 1.5 kB
JavaScript
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