import { Address } from '../../../../../node_modules/@btc-vision/transaction/build/index.js'; import { CallResult } from '../../../../contracts/CallResult.js'; import { OPNetEvent } from '../../../../contracts/OPNetEvent.js'; import { IOP20Contract } from './IOP20Contract.js'; export type PegRateUpdatedEvent = { readonly oldRate: bigint; readonly newRate: bigint; readonly updatedAt: bigint; }; export type MaxStalenessUpdatedEvent = { readonly oldStaleness: bigint; readonly newStaleness: bigint; }; export type PegAuthorityTransferStartedEvent = { readonly currentAuthority: Address; readonly pendingAuthority: Address; }; export type PegAuthorityTransferredEvent = { readonly previousAuthority: Address; readonly newAuthority: Address; }; export type PegAuthorityRenouncedEvent = { readonly previousAuthority: Address; }; export type PegRate = CallResult<{ rate: bigint; }, []>; export type PegAuthority = CallResult<{ authority: Address; }, []>; export type PegUpdatedAt = CallResult<{ updatedAt: bigint; }, []>; export type MaxStaleness = CallResult<{ staleness: bigint; }, []>; export type IsStale = CallResult<{ stale: boolean; }, []>; export type UpdatePegRate = CallResult<{}, [OPNetEvent]>; export type UpdateMaxStaleness = CallResult<{}, [OPNetEvent]>; export type TransferPegAuthority = CallResult<{}, [OPNetEvent]>; export type AcceptPegAuthority = CallResult<{}, [OPNetEvent]>; export type RenouncePegAuthority = CallResult<{}, [OPNetEvent]>; export interface IOP20SContract extends IOP20Contract { pegRate(): Promise; pegAuthority(): Promise; pegUpdatedAt(): Promise; maxStaleness(): Promise; isStale(): Promise; updatePegRate(newRate: bigint): Promise; updateMaxStaleness(newStaleness: bigint): Promise; transferPegAuthority(newAuthority: Address): Promise; acceptPegAuthority(): Promise; renouncePegAuthority(): Promise; }