UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

35 lines (34 loc) 1.45 kB
import { Address } from '@btc-vision/transaction'; 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<MintedEventPegged>]>; export type BurnFromPegged = CallResult<{}, [OPNetEvent<BurnedEventPegged>]>; 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 { mint(to: Address, amount: bigint): Promise<MintPegged>; burnFrom(from: Address, amount: bigint): Promise<BurnFromPegged>; transferCustodian(newCustodian: Address): Promise<TransferCustodianPegged>; acceptCustodian(): Promise<AcceptCustodianPegged>; custodian(): Promise<CustodianPegged>; pendingCustodian(): Promise<PendingCustodianPegged>; }