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 MintedEventStable = { readonly to: Address; readonly amount: bigint; }; export type BurnedEventStable = { readonly from: Address; readonly amount: bigint; }; export type BlacklistedEventStable = { readonly account: Address; readonly blacklister: Address; }; export type UnblacklistedEventStable = { readonly account: Address; readonly blacklister: Address; }; export type PausedEventStable = { readonly pauser: Address; }; export type UnpausedEventStable = { readonly pauser: Address; }; export type OwnershipTransferStartedEventStable = { readonly currentOwner: Address; readonly pendingOwner: Address; }; export type OwnershipTransferredEventStable = { readonly previousOwner: Address; readonly newOwner: Address; }; export type MinterChangedEventStable = { readonly previousMinter: Address; readonly newMinter: Address; }; export type BlacklisterChangedEventStable = { readonly previousBlacklister: Address; readonly newBlacklister: Address; }; export type PauserChangedEventStable = { readonly previousPauser: Address; readonly newPauser: Address; }; export type MintStable = CallResult<{}, [OPNetEvent]>; export type BurnFromStable = CallResult<{}, [OPNetEvent]>; export type BlacklistStable = CallResult<{}, [OPNetEvent]>; export type UnblacklistStable = CallResult<{}, [OPNetEvent]>; export type IsBlacklistedStable = CallResult<{ blacklisted: boolean; }, []>; export type PauseStable = CallResult<{}, [OPNetEvent]>; export type UnpauseStable = CallResult<{}, [OPNetEvent]>; export type IsPausedStable = CallResult<{ paused: boolean; }, []>; export type TransferOwnershipStable = CallResult<{}, [ OPNetEvent ]>; export type AcceptOwnershipStable = CallResult<{}, [OPNetEvent]>; export type SetMinterStable = CallResult<{}, [OPNetEvent]>; export type SetBlacklisterStable = CallResult<{}, [OPNetEvent]>; export type SetPauserStable = CallResult<{}, [OPNetEvent]>; export type OwnerStable = CallResult<{ owner: Address; }, []>; export type MinterStable = CallResult<{ minter: Address; }, []>; export type BlacklisterStable = CallResult<{ blacklister: Address; }, []>; export type PauserStable = CallResult<{ pauser: Address; }, []>; export interface IStableCoinContract extends IOP20SContract { mint(to: Address, amount: bigint): Promise; burnFrom(from: Address, amount: bigint): Promise; blacklist(account: Address): Promise; unblacklist(account: Address): Promise; isBlacklisted(account: Address): Promise; pause(): Promise; unpause(): Promise; isPaused(): Promise; transferOwnership(newOwner: Address): Promise; acceptOwnership(): Promise; setMinter(newMinter: Address): Promise; setBlacklister(newBlacklister: Address): Promise; setPauser(newPauser: Address): Promise; owner(): Promise; minter(): Promise; blacklister(): Promise; pauser(): Promise; }