opnet
Version:
The perfect library for building Bitcoin-based applications.
35 lines (34 loc) • 1.45 kB
TypeScript
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>;
}