opnet
Version:
The perfect library for building Bitcoin-based applications.
57 lines (56 loc) • 3.24 kB
TypeScript
import { Network } from '../../node_modules/@btc-vision/bitcoin/build/index.js';
import { Address, NetEvent } from '../../node_modules/@btc-vision/transaction/build/index.js';
import { BitcoinInterface } from '../abi/BitcoinInterface.js';
import { BaseContractProperties } from '../abi/interfaces/BaseContractProperties.js';
import { BitcoinInterfaceAbi } from '../abi/interfaces/BitcoinInterfaceAbi.js';
import { BlockGasParameters } from '../block/BlockGasParameters.js';
import { AbstractRpcProvider } from '../providers/AbstractRpcProvider.js';
import { ContractEvents } from '../transactions/interfaces/ITransactionReceipt.js';
import { CallResult } from './CallResult.js';
import { IAccessList } from './interfaces/IAccessList.js';
import { IContract } from './interfaces/IContract.js';
import { ParsedSimulatedTransaction } from './interfaces/SimulatedTransaction.js';
import { OPNetEvent } from './OPNetEvent.js';
import { ContractDecodedObjectResult } from './types/ContractTypes.js';
declare const internal: unique symbol;
export declare abstract class IBaseContract<T extends BaseContractProperties> implements IContract {
readonly address: string | Address;
readonly network: Network;
readonly interface: BitcoinInterface;
readonly provider: AbstractRpcProvider;
from?: Address;
readonly [internal]: keyof T | undefined;
private events;
private gasParameters;
private readonly fetchGasParametersAfter;
private currentTxDetails;
private simulatedHeight;
private accessList;
private _rlAddress;
protected constructor(address: string | Address, abi: BitcoinInterface | BitcoinInterfaceAbi, provider: AbstractRpcProvider, network: Network, from?: Address);
get p2op(): string;
get contractAddress(): Promise<Address>;
setSender(sender: Address): void;
decodeEvents(events: NetEvent[] | ContractEvents): OPNetEvent<ContractDecodedObjectResult>[];
decodeEvent(event: NetEvent): OPNetEvent;
encodeCalldata(functionName: string, args: unknown[]): Buffer;
currentGasParameters(): Promise<BlockGasParameters>;
setTransactionDetails(tx: ParsedSimulatedTransaction): void;
setAccessList(accessList: IAccessList): void;
setSimulatedHeight(height: bigint | undefined): void;
protected getFunction(name: symbol | string): CallResult | undefined | string | number | symbol | Address | Network | (() => Promise<BlockGasParameters>) | ((functionName: string, args: unknown[]) => Buffer);
private defineInternalFunctions;
private getSelector;
private encodeFunctionData;
private encodeInput;
private decodeOutput;
private estimateGas;
private max;
private callFunction;
}
export declare class BaseContract<T extends BaseContractProperties> extends IBaseContract<T> {
constructor(address: string | Address, abi: BitcoinInterface | BitcoinInterfaceAbi, provider: AbstractRpcProvider, network: Network, sender?: Address);
private proxify;
}
export declare function getContract<T extends BaseContractProperties>(address: string | Address, abi: BitcoinInterface | BitcoinInterfaceAbi, provider: AbstractRpcProvider, network: Network, sender?: Address): BaseContract<T> & Omit<T, keyof BaseContract<T>>;
export {};