UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

57 lines (56 loc) 2.2 kB
import { Address } from '@btc-vision/transaction'; 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<PegRateUpdatedEvent>]>; export type UpdateMaxStaleness = CallResult<{}, [OPNetEvent<MaxStalenessUpdatedEvent>]>; export type TransferPegAuthority = CallResult<{}, [OPNetEvent<PegAuthorityTransferStartedEvent>]>; export type AcceptPegAuthority = CallResult<{}, [OPNetEvent<PegAuthorityTransferredEvent>]>; export type RenouncePegAuthority = CallResult<{}, [OPNetEvent<PegAuthorityRenouncedEvent>]>; export interface IOP20SContract extends IOP20Contract { pegRate(): Promise<PegRate>; pegAuthority(): Promise<PegAuthority>; pegUpdatedAt(): Promise<PegUpdatedAt>; maxStaleness(): Promise<MaxStaleness>; isStale(): Promise<IsStale>; updatePegRate(newRate: bigint): Promise<UpdatePegRate>; updateMaxStaleness(newStaleness: bigint): Promise<UpdateMaxStaleness>; transferPegAuthority(newAuthority: Address): Promise<TransferPegAuthority>; acceptPegAuthority(): Promise<AcceptPegAuthority>; renouncePegAuthority(): Promise<RenouncePegAuthority>; }