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