@harmoniclabs/blockfrost-pluts
Version:
@blockfrost/blockfrost-js extension based on plu-ts types
87 lines (86 loc) • 3.64 kB
TypeScript
import type { CanBeData, GenesisInfos, ISubmitTx, ITxRunnerProvider, IGetProtocolParameters } from "@harmoniclabs/buildooor";
import { Hash32, Address, Value, Script, ProtocolParameters, ITxOutRef, IUTxO, TxOutRefStr, AddressStr, Hash28, Tx, UTxO } from "@harmoniclabs/buildooor";
import { BlockfrostOptions } from "./BlockfrostOptions.js";
import { AddressInfos } from "./types/AddressInfos.js";
import { OgmiosRdmrExUnits } from "./utils/evaluatePlutusCosts.js";
import { BlockInfos } from "./types/BlockInfos.js";
type CanResolveToUTxO = IUTxO | ITxOutRef | TxOutRefStr;
export type PaginationOptions = {
count?: number;
page?: number;
order?: 'asc' | 'desc';
};
export declare const defaultPaginationOpts: PaginationOptions;
export declare function paginationOptsToStr({ count, page, order }: PaginationOptions): string;
export declare class BlockfrostPluts implements ITxRunnerProvider, ISubmitTx, IGetProtocolParameters {
readonly network: "mainnet" | "preview" | "preprod" | "sanchonet";
readonly url: string;
readonly projectId: string;
constructor({ projectId, customBackend, network }: BlockfrostOptions);
/** @since 0.1.4 */
submitTx(tx: string | Tx): Promise<string>;
/** @since 0.1.13 */
evaluatePlutusCosts(tx: string | Tx): Promise<OgmiosRdmrExUnits[]>;
get(url: string): Promise<any>;
/** @since 0.1.12 */
getChainTip(): Promise<BlockInfos>;
/** @since 0.1.3 */
getGenesisInfos(): Promise<GenesisInfos>;
/** @since 0.1.1 */
epochsParameters(epoch_no: number): Promise<ProtocolParameters>;
/** @since 0.1.1 */
epochsLatestParameters(): Promise<ProtocolParameters>;
/** @since 0.1.0 */
getProtocolParameters(): Promise<ProtocolParameters>;
/** @since 0.1.0 */
resolveUtxos(utxos: CanResolveToUTxO[]): Promise<UTxO[]>;
/** @since 0.1.0 */
resolveDatumHashes(hashes: Hash32[]): Promise<{
hash: string;
datum: CanBeData;
}[]>;
/** @since 0.1.1 */
addressesInfos(address: AddressStr | Address): Promise<AddressInfos>;
/** @since 0.1.1 */
addressInfos(address: AddressStr | Address): Promise<AddressInfos>;
/** @since 0.1.1 */
addressTotalAmount(address: AddressStr | Address): Promise<Value>;
addressTxs(addr: AddressStr | Address): Promise<Hash32[]>;
/** @since 0.1.0 */
addressesUtxos(address: AddressStr | Address, pagination?: PaginationOptions): Promise<UTxO[]>;
getUtxos(address: AddressStr | Address, pagination?: PaginationOptions): Promise<UTxO[]>;
/** @since 0.3.0 */
private _addrUtxoQuery;
/** @since 0.3.0 */
addressAssetUtxos(address: AddressStr | Address, assetUnit: string, pagination?: PaginationOptions): Promise<UTxO[]>;
/**
* @since 0.4.1
**/
assetAddresses(assetUnit: string, pagination?: PaginationOptions): Promise<AddrStrAndQuantity[]>;
/**
* @since 0.4.1
**/
addressesWithAsset(assetUnit: string, pagination?: PaginationOptions): Promise<AddrStrAndQuantity[]>;
/**
* @since 0.4.1
**/
private _addressesWithAssetQuery;
/**
* @since 0.1.0
*
* @version 0.3.0 adds default pagination and full query on missing pagination
**/
addressUtxos(address: AddressStr | Address, pagination?: PaginationOptions): Promise<UTxO[]>;
/** @since 0.1.0 */
scriptsCbor(hash: string | Hash28): Promise<Script>;
/**
* @since 0.1.2
* @version 0.3.2 adds support for plutus v3
**/
resolveScriptHash(hash: string | Hash28): Promise<Script>;
}
export interface AddrStrAndQuantity {
address: AddressStr;
quantity: `${bigint}`;
}
export {};