opnet
Version:
The perfect library for building Bitcoin-based applications.
26 lines (25 loc) • 1.18 kB
TypeScript
import { Address } from '@btc-vision/transaction';
import { CallResult } from '../../../../contracts/CallResult.js';
import { OPNetEvent } from '../../../../contracts/OPNetEvent.js';
import { BurnedEvent } from '../opnet/IOP20Contract.js';
import { IOP20SContract } from '../opnet/IOP20SContract.js';
export type CustodianChangedEventPegged = {
readonly previousCustodian: Address;
readonly newCustodian: Address;
};
export type BurnFromPegged = CallResult<{}, [OPNetEvent<BurnedEvent>]>;
export type TransferCustodianPegged = CallResult<{}, []>;
export type AcceptCustodianPegged = CallResult<{}, [OPNetEvent<CustodianChangedEventPegged>]>;
export type CustodianPegged = CallResult<{
custodian: Address;
}, []>;
export type PendingCustodianPegged = CallResult<{
pendingCustodian: Address;
}, []>;
export interface IPeggedTokenContract extends IOP20SContract {
burnFrom(from: Address, amount: bigint): Promise<BurnFromPegged>;
transferCustodian(newCustodian: Address): Promise<TransferCustodianPegged>;
acceptCustodian(): Promise<AcceptCustodianPegged>;
custodian(): Promise<CustodianPegged>;
pendingCustodian(): Promise<PendingCustodianPegged>;
}