import { Address } from '../../../../../node_modules/@btc-vision/transaction/build/index.js'; import { CallResult } from '../../../../contracts/CallResult.js'; import { OPNetEvent } from '../../../../contracts/OPNetEvent.js'; import { IOP20SContract } from '../opnet/IOP20SContract.js'; export type MintedEventPegged = { readonly to: Address; readonly amount: bigint; }; export type BurnedEventPegged = { readonly from: Address; readonly amount: bigint; }; export type CustodianChangedEventPegged = { readonly previousCustodian: Address; readonly newCustodian: Address; }; export type MintPegged = CallResult<{}, [OPNetEvent]>; export type BurnFromPegged = CallResult<{}, [OPNetEvent]>; export type TransferCustodianPegged = CallResult<{}, []>; export type AcceptCustodianPegged = CallResult<{}, [OPNetEvent]>; export type CustodianPegged = CallResult<{ custodian: Address; }, []>; export type PendingCustodianPegged = CallResult<{ pendingCustodian: Address; }, []>; export interface IPeggedTokenContract extends IOP20SContract { mint(to: Address, amount: bigint): Promise; burnFrom(from: Address, amount: bigint): Promise; transferCustodian(newCustodian: Address): Promise; acceptCustodian(): Promise; custodian(): Promise; pendingCustodian(): Promise; }