@witnet/ethers
Version:
Wit/Oracle Ethers Framework package for EVM-compatible projects
101 lines • 2.9 kB
TypeScript
import { Witnet } from "@witnet/sdk";
import { ContractWrapper } from "./wrappers/ContractWrapper";
export type DataPushReport = Witnet.GetDataRequestEtherealReport & {
evm_proof?: Witnet.HexString;
};
export type PriceFeed = {
id?: string;
id4: string;
exponent: number;
symbol: string;
mapper?: PriceFeedMapper;
oracle?: PriceFeedOracle;
updateConditions?: PriceFeedUpdateConditions;
lastUpdate?: PriceFeedUpdate;
};
export type PriceFeedMapper = {
class: string;
deps: Array<string>;
};
export declare enum PriceFeedMappers {
None = 0,
Fallback = 1,
Hottest = 2,
Product = 3,
Inverse = 4
}
export type PriceFeedOracle = {
class: string;
target: string;
sources: Witnet.Hash;
};
export declare enum PriceFeedOracles {
Witnet = 0,
Erc2362 = 1,
Chainlink = 2
}
export type PriceFeedUpdate = {
price: number;
deltaPrice?: number;
exponent?: number;
timestamp: number;
trail: Witnet.Hash;
};
export type PriceFeedUpdateConditions = {
callbackGas: number;
computeEMA: boolean;
cooldownSecs: number;
heartbeatSecs: number;
maxDeviationPercentage: number;
minWitnesses: number;
};
export type RandomizeStatus = "Void" | "Awaiting" | "Finalizing" | "Ready" | "Error";
export { TransactionReceipt } from "ethers";
export type WitOracleArtifact = {
address: Witnet.HexString;
abi: any;
class: string;
gitHash?: string;
interfaceId: Witnet.HexString;
isUpgradable: boolean;
semVer?: string;
version?: string;
wrapper?: ContractWrapper;
};
export type WitOracleQuery = {
checkpoint: BigInt;
hash: Witnet.Hash;
params: WitOracleQueryParams;
request: WitOracleQueryRequest;
response?: WitOracleQueryResponse;
};
export type WitOracleQueryParams = {
/**
* Maximum expected size of the CBOR-encoded query result, once solved by the Witnet blockchain.
*/
resultMaxSize?: number;
/**
* Mininum reward in $nanoWIT for very validator that positively contributes to get the Wit/Oracle
* query attended, solved and stored into the Witnet blockchain.
*/
unitaryReward: bigint;
/**
* Maximum number of witnessing nodes required to participate in solving the oracle query.
*/
witnesses: number;
};
export type WitOracleQueryRequest = {
callbackGas?: number;
radonHash: Witnet.Hash;
requester: string;
};
export type WitOracleQueryResponse = {
disputer?: string;
reporter?: string;
resultTimestamp?: number;
resultDrTxHash: Witnet.Hash;
resultCborBytes: Witnet.HexString;
};
export type WitOracleQueryStatus = "Void" | "Posted" | "Reported" | "Finalized" | "Delayed" | "Expired" | "Disputed";
export type WitOracleResultDataTypes = "any" | "array" | "boolean" | "bytes" | "float" | "integer" | "map" | "string";
//# sourceMappingURL=types.d.ts.map