2018-06-24 11:03:21 +03:00
|
|
|
// Generated by dts-bundle v0.7.3
|
|
|
|
|
|
|
|
declare module 'ethers' {
|
2018-07-16 11:00:56 +03:00
|
|
|
import * as ethers from 'ethers/ethers';
|
|
|
|
export { ethers };
|
2018-07-31 01:59:52 +03:00
|
|
|
export * from 'ethers/ethers';
|
2018-07-16 11:00:56 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/ethers' {
|
2018-09-26 23:15:13 +03:00
|
|
|
import { Contract, ContractFactory, VoidSigner } from 'ethers/contract';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Signer } from 'ethers/abstract-signer';
|
|
|
|
import { Wallet } from 'ethers/wallet';
|
|
|
|
import * as constants from 'ethers/constants';
|
|
|
|
import * as errors from 'ethers/errors';
|
2018-08-03 03:43:09 +03:00
|
|
|
import * as providers from 'ethers/providers';
|
2018-07-31 01:59:52 +03:00
|
|
|
import * as utils from 'ethers/utils';
|
2018-06-24 11:03:21 +03:00
|
|
|
import * as wordlists from 'ethers/wordlists';
|
2018-08-02 01:05:19 +03:00
|
|
|
import { platform } from 'ethers/utils/shims';
|
2018-06-24 12:31:24 +03:00
|
|
|
import { version } from 'ethers/_version';
|
2018-10-05 03:25:07 +03:00
|
|
|
import { ContractFunction, ContractTransaction, Event, EventFilter } from 'ethers/contract';
|
2018-09-24 23:07:14 +03:00
|
|
|
function getDefaultProvider(network?: utils.Network | string): providers.BaseProvider;
|
2018-10-05 03:25:07 +03:00
|
|
|
export { Signer, Wallet, VoidSigner, getDefaultProvider, providers, Contract, ContractFactory, constants, errors, utils, wordlists, platform, version, ContractFunction, ContractTransaction, Event, EventFilter };
|
2018-08-03 03:43:09 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/contract' {
|
2018-08-13 19:01:44 +03:00
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Indexed, Interface } from 'ethers/utils/interface';
|
2018-09-26 23:15:13 +03:00
|
|
|
import { UnsignedTransaction } from 'ethers/utils/transaction';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
|
|
|
import { Signer } from 'ethers/abstract-signer';
|
2018-08-13 19:01:44 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { ParamType } from 'ethers/utils/abi-coder';
|
|
|
|
import { Block, Listener, Log, TransactionReceipt, TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
export type ContractFunction = (...params: Array<any>) => Promise<any>;
|
|
|
|
export type EventFilter = {
|
|
|
|
address?: string;
|
|
|
|
topics?: Array<string>;
|
2018-08-13 19:01:44 +03:00
|
|
|
};
|
2018-09-24 23:07:14 +03:00
|
|
|
export interface Event extends Log {
|
2018-10-02 00:34:44 +03:00
|
|
|
args?: Array<any>;
|
|
|
|
decode?: (data: string, topics?: Array<string>) => any;
|
|
|
|
event?: string;
|
|
|
|
eventSignature?: string;
|
2018-09-24 23:07:14 +03:00
|
|
|
removeListener: () => void;
|
|
|
|
getBlock: () => Promise<Block>;
|
|
|
|
getTransaction: () => Promise<TransactionResponse>;
|
|
|
|
getTransactionReceipt: () => Promise<TransactionReceipt>;
|
2018-08-13 19:01:44 +03:00
|
|
|
}
|
2018-10-05 03:25:07 +03:00
|
|
|
export interface ContractReceipt extends TransactionReceipt {
|
|
|
|
events?: Array<Event>;
|
|
|
|
}
|
|
|
|
export interface ContractTransaction extends TransactionResponse {
|
|
|
|
wait(confirmations?: number): Promise<ContractReceipt>;
|
|
|
|
}
|
2018-09-24 23:07:14 +03:00
|
|
|
export class VoidSigner extends Signer {
|
|
|
|
readonly address: string;
|
|
|
|
constructor(address: string, provider: Provider);
|
|
|
|
getAddress(): Promise<string>;
|
|
|
|
_fail(message: string, operation: string): Promise<any>;
|
|
|
|
signMessage(message: Arrayish | string): Promise<string>;
|
|
|
|
sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
|
|
|
|
connect(provider: Provider): VoidSigner;
|
|
|
|
}
|
|
|
|
interface Bucket<T> {
|
|
|
|
[name: string]: T;
|
|
|
|
}
|
|
|
|
export class Contract {
|
|
|
|
readonly address: string;
|
|
|
|
readonly interface: Interface;
|
|
|
|
readonly signer: Signer;
|
|
|
|
readonly provider: Provider;
|
|
|
|
readonly estimate: Bucket<(...params: Array<any>) => Promise<BigNumber>>;
|
|
|
|
readonly functions: Bucket<ContractFunction>;
|
|
|
|
readonly filters: Bucket<(...params: Array<any>) => EventFilter>;
|
|
|
|
readonly [name: string]: ContractFunction | any;
|
|
|
|
readonly addressPromise: Promise<string>;
|
|
|
|
readonly deployTransaction: TransactionResponse;
|
|
|
|
constructor(addressOrName: string, contractInterface: Array<string | ParamType> | string | Interface, signerOrProvider: Signer | Provider);
|
|
|
|
deployed(): Promise<Contract>;
|
|
|
|
fallback(overrides?: TransactionRequest): Promise<TransactionResponse>;
|
|
|
|
connect(signerOrProvider: Signer | Provider | string): Contract;
|
|
|
|
attach(addressOrName: string): Contract;
|
|
|
|
static isIndexed(value: any): value is Indexed;
|
|
|
|
on(event: EventFilter | string, listener: Listener): Contract;
|
|
|
|
once(event: EventFilter | string, listener: Listener): Contract;
|
|
|
|
addListener(eventName: EventFilter | string, listener: Listener): Contract;
|
|
|
|
emit(eventName: EventFilter | string, ...args: Array<any>): boolean;
|
|
|
|
listenerCount(eventName?: EventFilter | string): number;
|
|
|
|
listeners(eventName: EventFilter | string): Array<Listener>;
|
|
|
|
removeAllListeners(eventName: EventFilter | string): Contract;
|
|
|
|
removeListener(eventName: any, listener: Listener): Contract;
|
|
|
|
}
|
2018-09-26 23:15:13 +03:00
|
|
|
export class ContractFactory {
|
|
|
|
readonly interface: Interface;
|
|
|
|
readonly bytecode: string;
|
|
|
|
readonly signer: Signer;
|
|
|
|
constructor(contractInterface: Array<string | ParamType> | string | Interface, bytecode: Arrayish | string | {
|
|
|
|
object: string;
|
|
|
|
}, signer?: Signer);
|
|
|
|
getDeployTransaction(...args: Array<any>): UnsignedTransaction;
|
|
|
|
deploy(...args: Array<any>): Promise<Contract>;
|
|
|
|
attach(address: string): Contract;
|
|
|
|
connect(signer: Signer): ContractFactory;
|
|
|
|
static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory;
|
|
|
|
}
|
2018-09-24 23:07:14 +03:00
|
|
|
export {};
|
2018-08-13 19:01:44 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/abstract-signer' {
|
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
2018-08-13 19:01:44 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
export abstract class Signer {
|
|
|
|
readonly provider?: Provider;
|
|
|
|
abstract getAddress(): Promise<string>;
|
|
|
|
abstract signMessage(message: Arrayish | string): Promise<string>;
|
|
|
|
abstract sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
|
|
|
|
constructor();
|
|
|
|
static isSigner(value: any): value is Signer;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/wallet' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { HDNode } from 'ethers/utils/hdnode';
|
|
|
|
import { SigningKey } from 'ethers/utils/signing-key';
|
|
|
|
import { Wordlist } from 'ethers/utils/wordlist';
|
|
|
|
import { Signer as AbstractSigner } from 'ethers/abstract-signer';
|
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
|
|
|
import { ProgressCallback } from 'ethers/utils/secret-storage';
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
import { BlockTag, TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
export class Wallet extends AbstractSigner {
|
|
|
|
readonly provider: Provider;
|
|
|
|
constructor(privateKey: SigningKey | HDNode | Arrayish, provider?: Provider);
|
|
|
|
readonly address: string;
|
|
|
|
readonly mnemonic: string;
|
|
|
|
readonly path: string;
|
|
|
|
readonly privateKey: string;
|
|
|
|
/**
|
|
|
|
* Create a new instance of this Wallet connected to provider.
|
|
|
|
*/
|
|
|
|
connect(provider: Provider): Wallet;
|
|
|
|
getAddress(): Promise<string>;
|
|
|
|
sign(transaction: TransactionRequest): Promise<string>;
|
|
|
|
signMessage(message: Arrayish | string): Promise<string>;
|
|
|
|
getBalance(blockTag?: BlockTag): Promise<BigNumber>;
|
|
|
|
getTransactionCount(blockTag?: BlockTag): Promise<number>;
|
|
|
|
sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
|
|
|
|
encrypt(password: Arrayish | string, options?: any, progressCallback?: ProgressCallback): Promise<string>;
|
|
|
|
/**
|
|
|
|
* Static methods to create Wallet instances.
|
|
|
|
*/
|
|
|
|
static createRandom(options?: any): Wallet;
|
2018-10-07 08:13:10 +03:00
|
|
|
static fromEncryptedJson(json: string, password: Arrayish, progressCallback?: ProgressCallback): Promise<Wallet>;
|
2018-09-24 23:07:14 +03:00
|
|
|
static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet;
|
2018-08-13 19:01:44 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/constants' {
|
2018-08-03 04:35:39 +03:00
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
const AddressZero = "0x0000000000000000000000000000000000000000";
|
|
|
|
const HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
|
|
const EtherSymbol = "\u039E";
|
|
|
|
const NegativeOne: BigNumber;
|
|
|
|
const Zero: BigNumber;
|
|
|
|
const One: BigNumber;
|
|
|
|
const Two: BigNumber;
|
|
|
|
const WeiPerEther: BigNumber;
|
|
|
|
const MaxUint256: BigNumber;
|
|
|
|
export { AddressZero, HashZero, EtherSymbol, NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256 };
|
2018-08-03 03:43:09 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/errors' {
|
2018-08-03 03:43:09 +03:00
|
|
|
export const UNKNOWN_ERROR = "UNKNOWN_ERROR";
|
|
|
|
export const NOT_IMPLEMENTED = "NOT_IMPLEMENTED";
|
|
|
|
export const MISSING_NEW = "MISSING_NEW";
|
|
|
|
export const CALL_EXCEPTION = "CALL_EXCEPTION";
|
|
|
|
export const INVALID_ARGUMENT = "INVALID_ARGUMENT";
|
|
|
|
export const MISSING_ARGUMENT = "MISSING_ARGUMENT";
|
|
|
|
export const UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT";
|
|
|
|
export const NUMERIC_FAULT = "NUMERIC_FAULT";
|
|
|
|
export const INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS";
|
|
|
|
export const NONCE_EXPIRED = "NONCE_EXPIRED";
|
|
|
|
export const REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED";
|
|
|
|
export const UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION";
|
|
|
|
export function throwError(message: string, code: string, params: any): never;
|
|
|
|
export function checkNew(self: any, kind: any): void;
|
|
|
|
export function checkArgumentCount(count: number, expectedCount: number, suffix?: string): void;
|
|
|
|
export function setCensorship(censorship: boolean, permanent?: boolean): void;
|
2018-11-09 22:42:29 +03:00
|
|
|
export function checkNormalize(): void;
|
2018-12-27 23:53:00 +03:00
|
|
|
export function setLogLevel(logLevel: string): void;
|
|
|
|
export function warn(...args: Array<any>): void;
|
|
|
|
export function info(...args: Array<any>): void;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/providers' {
|
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
|
|
|
import { BaseProvider } from 'ethers/providers/base-provider';
|
|
|
|
import { EtherscanProvider } from 'ethers/providers/etherscan-provider';
|
|
|
|
import { FallbackProvider } from 'ethers/providers/fallback-provider';
|
|
|
|
import { IpcProvider } from 'ethers/providers/ipc-provider';
|
|
|
|
import { InfuraProvider } from 'ethers/providers/infura-provider';
|
|
|
|
import { JsonRpcProvider, JsonRpcSigner } from 'ethers/providers/json-rpc-provider';
|
|
|
|
import { Web3Provider } from 'ethers/providers/web3-provider';
|
|
|
|
import { Block, BlockTag, EventType, Filter, Log, Listener, TransactionReceipt, TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
import { AsyncSendable } from 'ethers/providers/web3-provider';
|
|
|
|
export { Provider, BaseProvider, FallbackProvider, EtherscanProvider, InfuraProvider, JsonRpcProvider, Web3Provider, IpcProvider, JsonRpcSigner, Block, BlockTag, EventType, Filter, Log, Listener, TransactionReceipt, TransactionRequest, TransactionResponse, AsyncSendable };
|
|
|
|
}
|
|
|
|
|
2018-06-24 11:03:21 +03:00
|
|
|
declare module 'ethers/utils' {
|
2018-09-24 23:07:14 +03:00
|
|
|
import { AbiCoder, defaultAbiCoder, formatSignature, formatParamType, parseSignature, parseParamType } from 'ethers/utils/abi-coder';
|
2018-07-31 01:59:52 +03:00
|
|
|
import { getAddress, getContractAddress, getIcapAddress } from 'ethers/utils/address';
|
2018-06-24 11:03:21 +03:00
|
|
|
import * as base64 from 'ethers/utils/base64';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { BigNumber, bigNumberify } from 'ethers/utils/bignumber';
|
2018-12-13 00:59:25 +03:00
|
|
|
import { arrayify, concat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexZeroPad, isHexString, joinSignature, padZeros, splitSignature, stripZeros } from 'ethers/utils/bytes';
|
2018-06-24 11:03:21 +03:00
|
|
|
import { hashMessage, id, namehash } from 'ethers/utils/hash';
|
2018-09-24 23:07:14 +03:00
|
|
|
import * as HDNode from 'ethers/utils/hdnode';
|
|
|
|
import { Interface } from 'ethers/utils/interface';
|
2018-07-17 08:46:27 +03:00
|
|
|
import { getJsonWalletAddress } from 'ethers/utils/json-wallet';
|
2018-06-24 11:03:21 +03:00
|
|
|
import { keccak256 } from 'ethers/utils/keccak256';
|
|
|
|
import { sha256 } from 'ethers/utils/sha2';
|
|
|
|
import { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from 'ethers/utils/solidity';
|
|
|
|
import { randomBytes } from 'ethers/utils/random-bytes';
|
2018-07-16 07:55:34 +03:00
|
|
|
import { getNetwork } from 'ethers/utils/networks';
|
2018-10-15 02:05:38 +03:00
|
|
|
import { checkProperties, deepCopy, defineReadOnly, resolveProperties, shallowCopy } from 'ethers/utils/properties';
|
2018-06-24 11:03:21 +03:00
|
|
|
import * as RLP from 'ethers/utils/rlp';
|
2018-09-06 23:41:02 +03:00
|
|
|
import { computeAddress, computePublicKey, recoverAddress, recoverPublicKey, verifyMessage } from 'ethers/utils/secp256k1';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { SigningKey } from 'ethers/utils/signing-key';
|
2018-10-15 02:05:38 +03:00
|
|
|
import { populateTransaction } from 'ethers/utils/transaction';
|
2018-07-13 03:14:04 +03:00
|
|
|
import { parse as parseTransaction, serialize as serializeTransaction } from 'ethers/utils/transaction';
|
2018-08-21 14:13:52 +03:00
|
|
|
import { formatBytes32String, parseBytes32String, toUtf8Bytes, toUtf8String } from 'ethers/utils/utf8';
|
2018-09-26 23:15:13 +03:00
|
|
|
import { commify, formatEther, parseEther, formatUnits, parseUnits } from 'ethers/utils/units';
|
2018-06-24 11:03:21 +03:00
|
|
|
import { fetchJson } from 'ethers/utils/web';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { SupportedAlgorithms } from 'ethers/utils/hmac';
|
|
|
|
import { UnicodeNormalizationForm } from 'ethers/utils/utf8';
|
2018-08-03 03:43:09 +03:00
|
|
|
import { CoerceFunc, EventFragment, FunctionFragment, ParamType } from 'ethers/utils/abi-coder';
|
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
|
|
|
import { Arrayish, Hexable, Signature } from 'ethers/utils/bytes';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Indexed, DeployDescription, EventDescription, FunctionDescription, LogDescription, TransactionDescription } from 'ethers/utils/interface';
|
2018-08-03 03:43:09 +03:00
|
|
|
import { Network, Networkish } from 'ethers/utils/networks';
|
|
|
|
import { Transaction, UnsignedTransaction } from 'ethers/utils/transaction';
|
|
|
|
import { ConnectionInfo, OnceBlockable, PollOptions } from 'ethers/utils/web';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { EncryptOptions, ProgressCallback } from 'ethers/utils/secret-storage';
|
|
|
|
import { Wordlist } from 'ethers/utils/wordlist';
|
2018-12-13 00:59:25 +03:00
|
|
|
export { AbiCoder, defaultAbiCoder, formatSignature, formatParamType, parseSignature, parseParamType, RLP, fetchJson, getNetwork, checkProperties, deepCopy, defineReadOnly, resolveProperties, shallowCopy, arrayify, concat, padZeros, stripZeros, HDNode, SigningKey, Interface, base64, BigNumber, bigNumberify, hexlify, isHexString, hexStripZeros, hexZeroPad, hexDataLength, hexDataSlice, toUtf8Bytes, toUtf8String, formatBytes32String, parseBytes32String, hashMessage, namehash, id, getAddress, getIcapAddress, getContractAddress, formatEther, parseEther, formatUnits, parseUnits, commify, keccak256, sha256, randomBytes, solidityPack, solidityKeccak256, soliditySha256, splitSignature, joinSignature, parseTransaction, populateTransaction, serializeTransaction, getJsonWalletAddress, computeAddress, computePublicKey, recoverAddress, recoverPublicKey, verifyMessage, SupportedAlgorithms, UnicodeNormalizationForm, CoerceFunc, EventFragment, FunctionFragment, ParamType, BigNumberish, Arrayish, Hexable, Signature, Indexed, DeployDescription, EventDescription, FunctionDescription, LogDescription, TransactionDescription, Network, Networkish, Transaction, UnsignedTransaction, ConnectionInfo, OnceBlockable, PollOptions, EncryptOptions, ProgressCallback, Wordlist, };
|
2018-06-24 11:03:21 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/wordlists' {
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Wordlist } from 'ethers/utils/wordlist';
|
2018-06-24 11:03:21 +03:00
|
|
|
const en: Wordlist;
|
2018-10-04 03:03:32 +03:00
|
|
|
const es: Wordlist;
|
|
|
|
const fr: Wordlist;
|
2018-06-24 11:03:21 +03:00
|
|
|
const it: Wordlist;
|
|
|
|
const ja: Wordlist;
|
2018-10-04 03:03:32 +03:00
|
|
|
const ko: Wordlist;
|
2018-06-24 11:03:21 +03:00
|
|
|
const zh: Wordlist;
|
|
|
|
const zh_cn: Wordlist;
|
|
|
|
const zh_tw: Wordlist;
|
2018-10-04 03:03:32 +03:00
|
|
|
export { en, es, fr, it, ja, ko, zh, zh_cn, zh_tw };
|
2018-07-13 03:14:04 +03:00
|
|
|
}
|
|
|
|
|
2018-08-02 01:05:19 +03:00
|
|
|
declare module 'ethers/utils/shims' {
|
|
|
|
export const platform = "node";
|
|
|
|
}
|
|
|
|
|
2018-07-31 01:59:52 +03:00
|
|
|
declare module 'ethers/_version' {
|
2019-01-26 03:10:44 +03:00
|
|
|
export const version = "4.0.24";
|
2018-07-31 01:59:52 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/utils/bignumber' {
|
|
|
|
import { Hexable } from 'ethers/utils/bytes';
|
2018-09-06 23:41:02 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-09-24 23:07:14 +03:00
|
|
|
export type BigNumberish = BigNumber | string | number | Arrayish;
|
|
|
|
export class BigNumber implements Hexable {
|
|
|
|
constructor(value: BigNumberish);
|
|
|
|
fromTwos(value: number): BigNumber;
|
|
|
|
toTwos(value: number): BigNumber;
|
2018-12-13 00:59:25 +03:00
|
|
|
abs(): BigNumber;
|
2018-09-24 23:07:14 +03:00
|
|
|
add(other: BigNumberish): BigNumber;
|
|
|
|
sub(other: BigNumberish): BigNumber;
|
|
|
|
div(other: BigNumberish): BigNumber;
|
|
|
|
mul(other: BigNumberish): BigNumber;
|
|
|
|
mod(other: BigNumberish): BigNumber;
|
|
|
|
pow(other: BigNumberish): BigNumber;
|
|
|
|
maskn(value: number): BigNumber;
|
|
|
|
eq(other: BigNumberish): boolean;
|
|
|
|
lt(other: BigNumberish): boolean;
|
|
|
|
lte(other: BigNumberish): boolean;
|
|
|
|
gt(other: BigNumberish): boolean;
|
|
|
|
gte(other: BigNumberish): boolean;
|
|
|
|
isZero(): boolean;
|
|
|
|
toNumber(): number;
|
|
|
|
toString(): string;
|
|
|
|
toHexString(): string;
|
|
|
|
static isBigNumber(value: any): value is BigNumber;
|
2018-09-06 23:41:02 +03:00
|
|
|
}
|
2018-09-24 23:07:14 +03:00
|
|
|
export function bigNumberify(value: BigNumberish): BigNumber;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/interface' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
|
|
|
import { EventFragment, FunctionFragment, ParamType } from 'ethers/utils/abi-coder';
|
|
|
|
export interface Indexed {
|
|
|
|
readonly hash: string;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
|
|
|
export interface DeployDescription {
|
2018-07-26 04:20:21 +03:00
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly payable: boolean;
|
|
|
|
encode(bytecode: string, params: Array<any>): string;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
|
|
|
export interface FunctionDescription {
|
2018-07-26 04:20:21 +03:00
|
|
|
readonly type: "call" | "transaction";
|
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly sighash: string;
|
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly outputs: Array<ParamType>;
|
|
|
|
readonly payable: boolean;
|
2018-08-02 01:05:19 +03:00
|
|
|
readonly gas: BigNumber;
|
2018-07-26 04:20:21 +03:00
|
|
|
encode(params: Array<any>): string;
|
|
|
|
decode(data: string): any;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
|
|
|
export interface EventDescription {
|
2018-07-26 04:20:21 +03:00
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly anonymous: boolean;
|
|
|
|
readonly topic: string;
|
|
|
|
encodeTopics(params: Array<any>): Array<string>;
|
|
|
|
decode(data: string, topics?: Array<string>): any;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
2018-07-17 08:46:27 +03:00
|
|
|
export interface LogDescription {
|
2018-07-27 00:34:22 +03:00
|
|
|
readonly decode: (data: string, topics: Array<string>) => any;
|
2018-07-26 04:20:21 +03:00
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly topic: string;
|
2018-07-27 00:34:22 +03:00
|
|
|
readonly values: any;
|
2018-07-17 08:46:27 +03:00
|
|
|
}
|
|
|
|
export interface TransactionDescription {
|
2018-07-26 04:20:21 +03:00
|
|
|
readonly name: string;
|
|
|
|
readonly args: Array<any>;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly sighash: string;
|
|
|
|
readonly decode: (data: string) => any;
|
|
|
|
readonly value: BigNumber;
|
2018-07-17 08:46:27 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class Description {
|
|
|
|
constructor(info: any);
|
2018-07-13 03:14:04 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class _DeployDescription extends Description implements DeployDescription {
|
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly payable: boolean;
|
|
|
|
encode(bytecode: string, params: Array<any>): string;
|
2018-07-13 03:14:04 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class _FunctionDescription extends Description implements FunctionDescription {
|
|
|
|
readonly type: "call" | "transaction";
|
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly sighash: string;
|
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly outputs: Array<ParamType>;
|
|
|
|
readonly payable: boolean;
|
2018-08-02 01:05:19 +03:00
|
|
|
readonly gas: BigNumber;
|
2018-07-31 01:59:52 +03:00
|
|
|
encode(params: Array<any>): string;
|
|
|
|
decode(data: string): any;
|
2018-07-16 11:00:56 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class _EventDescription extends Description implements EventDescription {
|
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly inputs: Array<ParamType>;
|
|
|
|
readonly anonymous: boolean;
|
|
|
|
readonly topic: string;
|
|
|
|
encodeTopics(params: Array<any>): Array<string>;
|
|
|
|
decode(data: string, topics?: Array<string>): any;
|
2018-07-13 03:14:04 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class _TransactionDescription extends Description implements TransactionDescription {
|
|
|
|
readonly name: string;
|
|
|
|
readonly args: Array<any>;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly sighash: string;
|
|
|
|
readonly decode: (data: string) => any;
|
|
|
|
readonly value: BigNumber;
|
2018-06-14 12:38:37 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
class _LogDescription extends Description implements LogDescription {
|
|
|
|
readonly name: string;
|
|
|
|
readonly signature: string;
|
|
|
|
readonly topic: string;
|
|
|
|
readonly decode: (data: string, topics: Array<string>) => any;
|
|
|
|
readonly values: any;
|
2018-06-24 11:03:21 +03:00
|
|
|
}
|
2018-06-14 12:38:37 +03:00
|
|
|
export class Interface {
|
2018-06-23 03:30:50 +03:00
|
|
|
readonly abi: Array<EventFragment | FunctionFragment>;
|
|
|
|
readonly functions: {
|
2018-07-17 08:46:27 +03:00
|
|
|
[name: string]: _FunctionDescription;
|
2018-06-23 03:30:50 +03:00
|
|
|
};
|
|
|
|
readonly events: {
|
2018-07-17 08:46:27 +03:00
|
|
|
[name: string]: _EventDescription;
|
2018-06-23 03:30:50 +03:00
|
|
|
};
|
2018-07-17 08:46:27 +03:00
|
|
|
readonly deployFunction: _DeployDescription;
|
2018-06-14 12:38:37 +03:00
|
|
|
constructor(abi: Array<string | ParamType> | string);
|
|
|
|
parseTransaction(tx: {
|
|
|
|
data: string;
|
|
|
|
value?: BigNumberish;
|
2018-07-17 08:46:27 +03:00
|
|
|
}): _TransactionDescription;
|
2018-06-18 12:42:41 +03:00
|
|
|
parseLog(log: {
|
|
|
|
topics: Array<string>;
|
|
|
|
data: string;
|
2018-07-17 08:46:27 +03:00
|
|
|
}): _LogDescription;
|
2018-07-26 04:20:21 +03:00
|
|
|
static isInterface(value: any): value is Interface;
|
2018-07-31 01:59:52 +03:00
|
|
|
static isIndexed(value: any): value is Indexed;
|
2018-06-14 12:38:37 +03:00
|
|
|
}
|
2018-07-31 01:59:52 +03:00
|
|
|
export {};
|
2018-06-14 12:38:37 +03:00
|
|
|
}
|
2018-06-24 11:03:21 +03:00
|
|
|
|
2018-09-26 23:15:13 +03:00
|
|
|
declare module 'ethers/utils/transaction' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { Arrayish, Signature } from 'ethers/utils/bytes';
|
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
2018-10-15 02:05:38 +03:00
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
2018-09-26 23:15:13 +03:00
|
|
|
export type UnsignedTransaction = {
|
|
|
|
to?: string;
|
|
|
|
nonce?: number;
|
|
|
|
gasLimit?: BigNumberish;
|
|
|
|
gasPrice?: BigNumberish;
|
|
|
|
data?: Arrayish;
|
|
|
|
value?: BigNumberish;
|
|
|
|
chainId?: number;
|
|
|
|
};
|
|
|
|
export interface Transaction {
|
|
|
|
hash?: string;
|
|
|
|
to?: string;
|
|
|
|
from?: string;
|
|
|
|
nonce: number;
|
|
|
|
gasLimit: BigNumber;
|
|
|
|
gasPrice: BigNumber;
|
|
|
|
data: string;
|
|
|
|
value: BigNumber;
|
|
|
|
chainId: number;
|
|
|
|
r?: string;
|
|
|
|
s?: string;
|
|
|
|
v?: number;
|
|
|
|
}
|
|
|
|
export function serialize(transaction: UnsignedTransaction, signature?: Arrayish | Signature): string;
|
|
|
|
export function parse(rawTransaction: Arrayish): Transaction;
|
2018-10-15 02:05:38 +03:00
|
|
|
export function populateTransaction(transaction: any, provider: Provider, from: string | Promise<string>): Promise<Transaction>;
|
2018-09-26 23:15:13 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/providers/abstract-provider' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
|
|
|
import { Network } from 'ethers/utils/networks';
|
|
|
|
import { OnceBlockable } from 'ethers/utils/web';
|
|
|
|
import { Transaction } from 'ethers/utils/transaction';
|
|
|
|
export interface Block {
|
|
|
|
hash: string;
|
|
|
|
parentHash: string;
|
|
|
|
number: number;
|
|
|
|
timestamp: number;
|
|
|
|
nonce: string;
|
|
|
|
difficulty: number;
|
|
|
|
gasLimit: BigNumber;
|
|
|
|
gasUsed: BigNumber;
|
|
|
|
miner: string;
|
|
|
|
extraData: string;
|
|
|
|
transactions: Array<string>;
|
|
|
|
}
|
|
|
|
export type BlockTag = string | number;
|
|
|
|
export type Filter = {
|
|
|
|
fromBlock?: BlockTag;
|
|
|
|
toBlock?: BlockTag;
|
|
|
|
address?: string;
|
|
|
|
topics?: Array<string | Array<string>>;
|
|
|
|
};
|
|
|
|
export interface Log {
|
|
|
|
blockNumber?: number;
|
|
|
|
blockHash?: string;
|
|
|
|
transactionIndex?: number;
|
|
|
|
removed?: boolean;
|
|
|
|
transactionLogIndex?: number;
|
|
|
|
address: string;
|
|
|
|
data: string;
|
|
|
|
topics: Array<string>;
|
|
|
|
transactionHash?: string;
|
|
|
|
logIndex?: number;
|
|
|
|
}
|
|
|
|
export interface TransactionReceipt {
|
2019-01-24 00:30:12 +03:00
|
|
|
to?: string;
|
|
|
|
from?: string;
|
2018-09-24 23:07:14 +03:00
|
|
|
contractAddress?: string;
|
|
|
|
transactionIndex?: number;
|
|
|
|
root?: string;
|
|
|
|
gasUsed?: BigNumber;
|
|
|
|
logsBloom?: string;
|
|
|
|
blockHash?: string;
|
|
|
|
transactionHash?: string;
|
|
|
|
logs?: Array<Log>;
|
|
|
|
blockNumber?: number;
|
2018-10-05 03:25:07 +03:00
|
|
|
confirmations?: number;
|
2018-09-24 23:07:14 +03:00
|
|
|
cumulativeGasUsed?: BigNumber;
|
|
|
|
byzantium: boolean;
|
|
|
|
status?: number;
|
|
|
|
}
|
|
|
|
export type TransactionRequest = {
|
|
|
|
to?: string | Promise<string>;
|
|
|
|
from?: string | Promise<string>;
|
2018-12-13 00:59:25 +03:00
|
|
|
nonce?: BigNumberish | Promise<BigNumberish>;
|
2018-09-24 23:07:14 +03:00
|
|
|
gasLimit?: BigNumberish | Promise<BigNumberish>;
|
|
|
|
gasPrice?: BigNumberish | Promise<BigNumberish>;
|
|
|
|
data?: Arrayish | Promise<Arrayish>;
|
|
|
|
value?: BigNumberish | Promise<BigNumberish>;
|
|
|
|
chainId?: number | Promise<number>;
|
|
|
|
};
|
|
|
|
export interface TransactionResponse extends Transaction {
|
|
|
|
blockNumber?: number;
|
|
|
|
blockHash?: string;
|
|
|
|
timestamp?: number;
|
2018-10-05 03:25:07 +03:00
|
|
|
confirmations: number;
|
2018-09-24 23:07:14 +03:00
|
|
|
from: string;
|
|
|
|
raw?: string;
|
2018-10-05 03:25:07 +03:00
|
|
|
wait: (confirmations?: number) => Promise<TransactionReceipt>;
|
2018-09-24 23:07:14 +03:00
|
|
|
}
|
|
|
|
export type EventType = string | Array<string> | Filter;
|
|
|
|
export type Listener = (...args: Array<any>) => void;
|
|
|
|
export abstract class Provider implements OnceBlockable {
|
|
|
|
abstract getNetwork(): Promise<Network>;
|
|
|
|
abstract getBlockNumber(): Promise<number>;
|
|
|
|
abstract getGasPrice(): Promise<BigNumber>;
|
|
|
|
abstract getBalance(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<BigNumber>;
|
|
|
|
abstract getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
|
|
abstract getCode(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
|
|
abstract getStorageAt(addressOrName: string | Promise<string>, position: BigNumberish | Promise<BigNumberish>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
|
|
abstract sendTransaction(signedTransaction: string | Promise<string>): Promise<TransactionResponse>;
|
2018-10-11 23:50:52 +03:00
|
|
|
abstract call(transaction: TransactionRequest, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
2018-09-24 23:07:14 +03:00
|
|
|
abstract estimateGas(transaction: TransactionRequest): Promise<BigNumber>;
|
|
|
|
abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise<BlockTag | string>, includeTransactions?: boolean): Promise<Block>;
|
|
|
|
abstract getTransaction(transactionHash: string): Promise<TransactionResponse>;
|
|
|
|
abstract getTransactionReceipt(transactionHash: string): Promise<TransactionReceipt>;
|
|
|
|
abstract getLogs(filter: Filter): Promise<Array<Log>>;
|
|
|
|
abstract resolveName(name: string | Promise<string>): Promise<string>;
|
|
|
|
abstract lookupAddress(address: string | Promise<string>): Promise<string>;
|
|
|
|
abstract on(eventName: EventType, listener: Listener): Provider;
|
|
|
|
abstract once(eventName: EventType, listener: Listener): Provider;
|
|
|
|
abstract listenerCount(eventName?: EventType): number;
|
|
|
|
abstract listeners(eventName: EventType): Array<Listener>;
|
|
|
|
abstract removeAllListeners(eventName: EventType): Provider;
|
|
|
|
abstract removeListener(eventName: EventType, listener: Listener): Provider;
|
|
|
|
abstract waitForTransaction(transactionHash: string, timeout?: number): Promise<TransactionReceipt>;
|
|
|
|
constructor();
|
|
|
|
static isProvider(value: any): value is Provider;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/bytes' {
|
|
|
|
/**
|
|
|
|
* Conversion Utilities
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export type Arrayish = string | ArrayLike<number>;
|
|
|
|
export interface Hexable {
|
|
|
|
toHexString(): string;
|
|
|
|
}
|
|
|
|
export interface Signature {
|
|
|
|
r: string;
|
|
|
|
s: string;
|
|
|
|
recoveryParam?: number;
|
|
|
|
v?: number;
|
|
|
|
}
|
|
|
|
export function isHexable(value: any): value is Hexable;
|
|
|
|
export function isArrayish(value: any): value is Arrayish;
|
|
|
|
export function arrayify(value: Arrayish | Hexable): Uint8Array;
|
|
|
|
export function concat(objects: Array<Arrayish>): Uint8Array;
|
|
|
|
export function stripZeros(value: Arrayish): Uint8Array;
|
|
|
|
export function padZeros(value: Arrayish, length: number): Uint8Array;
|
|
|
|
export function isHexString(value: any, length?: number): boolean;
|
|
|
|
export function hexlify(value: Arrayish | Hexable | number): string;
|
|
|
|
export function hexDataLength(data: string): number;
|
2018-09-27 23:55:40 +03:00
|
|
|
export function hexDataSlice(data: string, offset: number, endOffset?: number): string;
|
2018-09-24 23:07:14 +03:00
|
|
|
export function hexStripZeros(value: string): string;
|
|
|
|
export function hexZeroPad(value: string, length: number): string;
|
|
|
|
export function splitSignature(signature: Arrayish | Signature): Signature;
|
|
|
|
export function joinSignature(signature: Signature): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/abi-coder' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export type CoerceFunc = (type: string, value: any) => any;
|
|
|
|
export type ParamType = {
|
|
|
|
name?: string;
|
|
|
|
type: string;
|
|
|
|
indexed?: boolean;
|
|
|
|
components?: Array<any>;
|
|
|
|
};
|
|
|
|
export type EventFragment = {
|
|
|
|
type: string;
|
|
|
|
name: string;
|
|
|
|
anonymous: boolean;
|
|
|
|
inputs: Array<ParamType>;
|
|
|
|
};
|
|
|
|
export type FunctionFragment = {
|
|
|
|
type: string;
|
|
|
|
name: string;
|
|
|
|
constant: boolean;
|
|
|
|
inputs: Array<ParamType>;
|
|
|
|
outputs: Array<ParamType>;
|
|
|
|
payable: boolean;
|
|
|
|
stateMutability: string;
|
|
|
|
gas: BigNumber;
|
|
|
|
};
|
|
|
|
export const defaultCoerceFunc: CoerceFunc;
|
|
|
|
export function parseParamType(type: string): ParamType;
|
|
|
|
export function formatParamType(paramType: ParamType): string;
|
|
|
|
export function formatSignature(fragment: EventFragment | FunctionFragment): string;
|
|
|
|
export function parseSignature(fragment: string): EventFragment | FunctionFragment;
|
|
|
|
export class AbiCoder {
|
|
|
|
readonly coerceFunc: CoerceFunc;
|
|
|
|
constructor(coerceFunc?: CoerceFunc);
|
|
|
|
encode(types: Array<string | ParamType>, values: Array<any>): string;
|
|
|
|
decode(types: Array<string | ParamType>, data: Arrayish): any;
|
|
|
|
}
|
|
|
|
export const defaultAbiCoder: AbiCoder;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/hdnode' {
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
import { Wordlist } from 'ethers/utils/wordlist';
|
|
|
|
export const defaultPath = "m/44'/60'/0'/0/0";
|
|
|
|
export class HDNode {
|
|
|
|
readonly privateKey: string;
|
|
|
|
readonly publicKey: string;
|
2019-02-02 03:50:10 +03:00
|
|
|
readonly fingerprint: string;
|
|
|
|
readonly parentFingerprint: string;
|
2018-10-07 08:13:10 +03:00
|
|
|
readonly address: string;
|
2018-09-24 23:07:14 +03:00
|
|
|
readonly mnemonic: string;
|
|
|
|
readonly path: string;
|
|
|
|
readonly chainCode: string;
|
|
|
|
readonly index: number;
|
|
|
|
readonly depth: number;
|
|
|
|
/**
|
|
|
|
* This constructor should not be called directly.
|
|
|
|
*
|
|
|
|
* Please use:
|
|
|
|
* - fromMnemonic
|
|
|
|
* - fromSeed
|
|
|
|
*/
|
2019-02-02 03:50:10 +03:00
|
|
|
constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonic: string, path: string);
|
|
|
|
readonly extendedKey: string;
|
|
|
|
neuter(): HDNode;
|
2018-09-24 23:07:14 +03:00
|
|
|
derivePath(path: string): HDNode;
|
|
|
|
static isHDNode(value: any): value is HDNode;
|
|
|
|
}
|
2019-02-02 03:50:10 +03:00
|
|
|
export function fromExtendedKey(extendedKey: string): HDNode;
|
|
|
|
export function fromMnemonic(mnemonic: string, wordlist?: Wordlist, password?: string): HDNode;
|
2018-09-24 23:07:14 +03:00
|
|
|
export function fromSeed(seed: Arrayish): HDNode;
|
|
|
|
export function mnemonicToSeed(mnemonic: string, password?: string): string;
|
|
|
|
export function mnemonicToEntropy(mnemonic: string, wordlist?: Wordlist): string;
|
|
|
|
export function entropyToMnemonic(entropy: Arrayish, wordlist?: Wordlist): string;
|
|
|
|
export function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/signing-key' {
|
|
|
|
/**
|
|
|
|
* SigningKey
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
import { HDNode } from 'ethers/utils/hdnode';
|
|
|
|
import { Arrayish, Signature } from 'ethers/utils/bytes';
|
|
|
|
export class SigningKey {
|
|
|
|
readonly privateKey: string;
|
|
|
|
readonly publicKey: string;
|
|
|
|
readonly address: string;
|
|
|
|
readonly mnemonic: string;
|
|
|
|
readonly path: string;
|
|
|
|
constructor(privateKey: Arrayish | HDNode);
|
|
|
|
signDigest(digest: Arrayish): Signature;
|
|
|
|
computeSharedSecret(key: Arrayish | string): string;
|
|
|
|
static isSigningKey(value: any): value is SigningKey;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/wordlist' {
|
|
|
|
export function check(wordlist: Wordlist): string;
|
|
|
|
export abstract class Wordlist {
|
|
|
|
readonly locale: string;
|
|
|
|
constructor(locale: string);
|
|
|
|
abstract getWord(index: number): string;
|
|
|
|
abstract getWordIndex(word: string): number;
|
|
|
|
split(mnemonic: string): Array<string>;
|
|
|
|
join(words: Array<string>): string;
|
|
|
|
}
|
|
|
|
export function register(lang: Wordlist, name?: string): void;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/secret-storage' {
|
|
|
|
import { SigningKey } from 'ethers/utils/signing-key';
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export type ProgressCallback = (percent: number) => void;
|
|
|
|
export type EncryptOptions = {
|
|
|
|
iv?: Arrayish;
|
|
|
|
entropy?: Arrayish;
|
|
|
|
mnemonic?: string;
|
|
|
|
path?: string;
|
|
|
|
client?: string;
|
|
|
|
salt?: Arrayish;
|
|
|
|
uuid?: string;
|
|
|
|
scrypt?: {
|
|
|
|
N?: number;
|
|
|
|
r?: number;
|
|
|
|
p?: number;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
export function decryptCrowdsale(json: string, password: Arrayish | string): SigningKey;
|
|
|
|
export function decrypt(json: string, password: Arrayish, progressCallback?: ProgressCallback): Promise<SigningKey>;
|
|
|
|
export function encrypt(privateKey: Arrayish | SigningKey, password: Arrayish | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise<string>;
|
|
|
|
}
|
|
|
|
|
2018-08-03 03:43:09 +03:00
|
|
|
declare module 'ethers/providers/base-provider' {
|
2018-08-02 01:05:19 +03:00
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
2018-08-03 03:43:09 +03:00
|
|
|
import { Provider } from 'ethers/providers/abstract-provider';
|
2018-08-02 01:05:19 +03:00
|
|
|
import { Block, BlockTag, EventType, Filter, Listener, Log, TransactionReceipt, TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
2018-07-31 01:59:52 +03:00
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
|
|
|
import { Transaction } from 'ethers/utils/transaction';
|
2018-08-02 01:05:19 +03:00
|
|
|
import { Network, Networkish } from 'ethers/utils/networks';
|
2018-08-03 03:43:09 +03:00
|
|
|
export class BaseProvider extends Provider {
|
2018-11-13 01:27:47 +03:00
|
|
|
protected _emitted: {
|
|
|
|
[eventName: string]: number | 'pending';
|
|
|
|
};
|
2018-08-02 01:05:19 +03:00
|
|
|
/**
|
|
|
|
* ready
|
|
|
|
*
|
|
|
|
* A Promise<Network> that resolves only once the provider is ready.
|
|
|
|
*
|
|
|
|
* Sub-classes that call the super with a network without a chainId
|
|
|
|
* MUST set this. Standard named networks have a known chainId.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
protected ready: Promise<Network>;
|
|
|
|
constructor(network: Networkish | Promise<Network>);
|
|
|
|
resetEventsBlock(blockNumber: number): void;
|
|
|
|
readonly network: Network;
|
|
|
|
getNetwork(): Promise<Network>;
|
|
|
|
readonly blockNumber: number;
|
|
|
|
polling: boolean;
|
|
|
|
pollingInterval: number;
|
2018-10-05 03:25:07 +03:00
|
|
|
_getFastBlockNumber(): Promise<number>;
|
|
|
|
_setFastBlockNumber(blockNumber: number): void;
|
|
|
|
waitForTransaction(transactionHash: string, confirmations?: number): Promise<TransactionReceipt>;
|
2018-08-02 01:05:19 +03:00
|
|
|
getBlockNumber(): Promise<number>;
|
|
|
|
getGasPrice(): Promise<BigNumber>;
|
|
|
|
getBalance(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<BigNumber>;
|
|
|
|
getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
|
|
getCode(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
|
|
getStorageAt(addressOrName: string | Promise<string>, position: BigNumberish | Promise<BigNumberish>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
|
|
sendTransaction(signedTransaction: string | Promise<string>): Promise<TransactionResponse>;
|
|
|
|
_wrapTransaction(tx: Transaction, hash?: string): TransactionResponse;
|
2018-10-11 23:50:52 +03:00
|
|
|
call(transaction: TransactionRequest, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
2018-08-02 01:05:19 +03:00
|
|
|
estimateGas(transaction: TransactionRequest): Promise<BigNumber>;
|
2018-09-06 23:41:02 +03:00
|
|
|
getBlock(blockHashOrBlockTag: BlockTag | string | Promise<BlockTag | string>, includeTransactions?: boolean): Promise<Block>;
|
2018-08-02 01:05:19 +03:00
|
|
|
getTransaction(transactionHash: string): Promise<TransactionResponse>;
|
|
|
|
getTransactionReceipt(transactionHash: string): Promise<TransactionReceipt>;
|
|
|
|
getLogs(filter: Filter): Promise<Array<Log>>;
|
|
|
|
getEtherPrice(): Promise<number>;
|
|
|
|
resolveName(name: string | Promise<string>): Promise<string>;
|
|
|
|
lookupAddress(address: string | Promise<string>): Promise<string>;
|
|
|
|
static checkTransactionResponse(transaction: any): TransactionResponse;
|
|
|
|
doPoll(): void;
|
|
|
|
perform(method: string, params: any): Promise<any>;
|
|
|
|
protected _startPending(): void;
|
|
|
|
protected _stopPending(): void;
|
|
|
|
on(eventName: EventType, listener: Listener): Provider;
|
|
|
|
once(eventName: EventType, listener: Listener): Provider;
|
|
|
|
addEventListener(eventName: EventType, listener: Listener): Provider;
|
|
|
|
emit(eventName: EventType, ...args: Array<any>): boolean;
|
|
|
|
listenerCount(eventName?: EventType): number;
|
|
|
|
listeners(eventName: EventType): Array<Listener>;
|
|
|
|
removeAllListeners(eventName: EventType): Provider;
|
|
|
|
removeListener(eventName: EventType, listener: Listener): Provider;
|
2018-07-31 01:59:52 +03:00
|
|
|
}
|
2018-08-02 01:05:19 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/providers/etherscan-provider' {
|
2018-08-03 03:43:09 +03:00
|
|
|
import { BaseProvider } from 'ethers/providers/base-provider';
|
2018-08-02 01:05:19 +03:00
|
|
|
import { BlockTag, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
import { Networkish } from 'ethers/utils/networks';
|
2018-08-03 03:43:09 +03:00
|
|
|
export class EtherscanProvider extends BaseProvider {
|
2018-08-02 01:05:19 +03:00
|
|
|
readonly baseUrl: string;
|
|
|
|
readonly apiKey: string;
|
|
|
|
constructor(network?: Networkish, apiKey?: string);
|
|
|
|
perform(method: string, params: any): Promise<any>;
|
|
|
|
getHistory(addressOrName: string | Promise<string>, startBlock?: BlockTag, endBlock?: BlockTag): Promise<Array<TransactionResponse>>;
|
2018-07-31 01:59:52 +03:00
|
|
|
}
|
2018-08-02 01:05:19 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/providers/fallback-provider' {
|
2018-08-03 03:43:09 +03:00
|
|
|
import { BaseProvider } from 'ethers/providers/base-provider';
|
|
|
|
export class FallbackProvider extends BaseProvider {
|
|
|
|
constructor(providers: Array<BaseProvider>);
|
|
|
|
readonly providers: Array<BaseProvider>;
|
2018-09-06 23:41:02 +03:00
|
|
|
perform(method: string, params: {
|
|
|
|
[name: string]: any;
|
|
|
|
}): any;
|
2018-07-31 01:59:52 +03:00
|
|
|
}
|
2018-08-02 01:05:19 +03:00
|
|
|
}
|
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/providers/ipc-provider' {
|
|
|
|
import { JsonRpcProvider } from 'ethers/providers/json-rpc-provider';
|
|
|
|
import { Networkish } from 'ethers/utils/networks';
|
|
|
|
export class IpcProvider extends JsonRpcProvider {
|
2018-07-31 01:59:52 +03:00
|
|
|
readonly path: string;
|
2018-09-24 23:07:14 +03:00
|
|
|
constructor(path: string, network?: Networkish);
|
|
|
|
send(method: string, params: any): Promise<any>;
|
2018-06-14 12:38:37 +03:00
|
|
|
}
|
|
|
|
}
|
2018-06-24 11:03:21 +03:00
|
|
|
|
2018-09-24 23:07:14 +03:00
|
|
|
declare module 'ethers/providers/infura-provider' {
|
|
|
|
import { JsonRpcProvider, JsonRpcSigner } from 'ethers/providers/json-rpc-provider';
|
|
|
|
import { Networkish } from 'ethers/utils/networks';
|
|
|
|
export class InfuraProvider extends JsonRpcProvider {
|
|
|
|
readonly apiAccessToken: string;
|
2019-01-24 00:30:12 +03:00
|
|
|
readonly projectId: string;
|
|
|
|
constructor(network?: Networkish, projectId?: string);
|
2018-09-24 23:07:14 +03:00
|
|
|
protected _startPending(): void;
|
|
|
|
getSigner(address?: string): JsonRpcSigner;
|
|
|
|
listAccounts(): Promise<Array<string>>;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/providers/json-rpc-provider' {
|
|
|
|
import { BaseProvider } from 'ethers/providers/base-provider';
|
|
|
|
import { Signer } from 'ethers/abstract-signer';
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
2018-08-03 03:43:09 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-09-24 23:07:14 +03:00
|
|
|
import { Networkish } from 'ethers/utils/networks';
|
|
|
|
import { ConnectionInfo } from 'ethers/utils/web';
|
|
|
|
import { BlockTag, TransactionRequest, TransactionResponse } from 'ethers/providers/abstract-provider';
|
|
|
|
export class JsonRpcSigner extends Signer {
|
|
|
|
readonly provider: JsonRpcProvider;
|
|
|
|
constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number);
|
|
|
|
getAddress(): Promise<string>;
|
|
|
|
getBalance(blockTag?: BlockTag): Promise<BigNumber>;
|
|
|
|
getTransactionCount(blockTag?: BlockTag): Promise<number>;
|
2018-12-15 02:39:46 +03:00
|
|
|
sendUncheckedTransaction(transaction: TransactionRequest): Promise<string>;
|
2018-09-24 23:07:14 +03:00
|
|
|
sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
|
|
|
|
signMessage(message: Arrayish | string): Promise<string>;
|
|
|
|
unlock(password: string): Promise<boolean>;
|
2018-08-03 03:43:09 +03:00
|
|
|
}
|
2018-09-24 23:07:14 +03:00
|
|
|
export class JsonRpcProvider extends BaseProvider {
|
|
|
|
readonly connection: ConnectionInfo;
|
|
|
|
constructor(url?: ConnectionInfo | string, network?: Networkish);
|
|
|
|
getSigner(addressOrIndex?: string | number): JsonRpcSigner;
|
|
|
|
listAccounts(): Promise<Array<string>>;
|
|
|
|
send(method: string, params: any): Promise<any>;
|
|
|
|
perform(method: string, params: any): Promise<any>;
|
|
|
|
protected _startPending(): void;
|
|
|
|
protected _stopPending(): void;
|
2018-10-11 23:50:52 +03:00
|
|
|
static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: {
|
|
|
|
[key: string]: boolean;
|
|
|
|
}): {
|
|
|
|
[key: string]: string;
|
|
|
|
};
|
2018-09-24 23:07:14 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/providers/web3-provider' {
|
|
|
|
import { JsonRpcProvider } from 'ethers/providers/json-rpc-provider';
|
|
|
|
import { Networkish } from 'ethers/utils/networks';
|
|
|
|
export type AsyncSendable = {
|
|
|
|
isMetaMask?: boolean;
|
|
|
|
host?: string;
|
|
|
|
path?: string;
|
|
|
|
sendAsync?: (request: any, callback: (error: any, response: any) => void) => void;
|
|
|
|
send?: (request: any, callback: (error: any, response: any) => void) => void;
|
|
|
|
};
|
|
|
|
export class Web3Provider extends JsonRpcProvider {
|
|
|
|
readonly _web3Provider: AsyncSendable;
|
|
|
|
constructor(web3Provider: AsyncSendable, network?: Networkish);
|
|
|
|
send(method: string, params: any): Promise<any>;
|
2018-08-03 03:43:09 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-13 19:01:44 +03:00
|
|
|
declare module 'ethers/utils/address' {
|
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export function getAddress(address: string): string;
|
|
|
|
export function getIcapAddress(address: string): string;
|
|
|
|
export function getContractAddress(transaction: {
|
|
|
|
from: string;
|
|
|
|
nonce: Arrayish | BigNumber | number;
|
|
|
|
}): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/base64' {
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export function decode(textData: string): Uint8Array;
|
|
|
|
export function encode(data: Arrayish): string;
|
|
|
|
}
|
|
|
|
|
2018-07-16 07:24:50 +03:00
|
|
|
declare module 'ethers/utils/hash' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-07-16 07:24:50 +03:00
|
|
|
export function namehash(name: string): string;
|
|
|
|
export function id(text: string): string;
|
|
|
|
export function hashMessage(message: Arrayish | string): string;
|
|
|
|
}
|
|
|
|
|
2018-07-17 08:46:27 +03:00
|
|
|
declare module 'ethers/utils/json-wallet' {
|
|
|
|
export function isCrowdsaleWallet(json: string): boolean;
|
|
|
|
export function isSecretStorageWallet(json: string): boolean;
|
|
|
|
export function getJsonWalletAddress(json: string): string;
|
|
|
|
}
|
|
|
|
|
2018-07-16 07:24:50 +03:00
|
|
|
declare module 'ethers/utils/keccak256' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-07-16 07:24:50 +03:00
|
|
|
export function keccak256(data: Arrayish): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/sha2' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2019-02-02 03:50:10 +03:00
|
|
|
export function ripemd160(data: Arrayish): string;
|
2018-07-16 07:24:50 +03:00
|
|
|
export function sha256(data: Arrayish): string;
|
|
|
|
export function sha512(data: Arrayish): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/solidity' {
|
|
|
|
export function pack(types: Array<string>, values: Array<any>): string;
|
|
|
|
export function keccak256(types: Array<string>, values: Array<any>): string;
|
|
|
|
export function sha256(types: Array<string>, values: Array<any>): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/random-bytes' {
|
|
|
|
export function randomBytes(length: number): Uint8Array;
|
|
|
|
}
|
|
|
|
|
2018-08-03 03:43:09 +03:00
|
|
|
declare module 'ethers/utils/networks' {
|
|
|
|
export type Network = {
|
|
|
|
name: string;
|
|
|
|
chainId: number;
|
|
|
|
ensAddress?: string;
|
2018-11-20 23:45:47 +03:00
|
|
|
_defaultProvider?: (providers: any) => any;
|
2018-08-03 03:43:09 +03:00
|
|
|
};
|
|
|
|
export type Networkish = Network | string | number;
|
|
|
|
/**
|
|
|
|
* getNetwork
|
|
|
|
*
|
|
|
|
* Converts a named common networks or chain ID (network ID) to a Network
|
|
|
|
* and verifies a network is a valid Network..
|
|
|
|
*/
|
|
|
|
export function getNetwork(network: Networkish): Network;
|
|
|
|
}
|
|
|
|
|
2018-07-16 07:24:50 +03:00
|
|
|
declare module 'ethers/utils/properties' {
|
|
|
|
export function defineReadOnly(object: any, name: string, value: any): void;
|
2018-07-26 04:20:21 +03:00
|
|
|
export function setType(object: any, type: string): void;
|
|
|
|
export function isType(object: any, type: string): boolean;
|
2018-07-16 07:24:50 +03:00
|
|
|
export function resolveProperties(object: any): Promise<any>;
|
2018-10-15 02:05:38 +03:00
|
|
|
export function checkProperties(object: any, properties: {
|
|
|
|
[name: string]: boolean;
|
|
|
|
}): void;
|
2018-07-16 07:24:50 +03:00
|
|
|
export function shallowCopy(object: any): any;
|
2018-08-21 14:13:52 +03:00
|
|
|
export function deepCopy(object: any, frozen?: boolean): any;
|
2018-07-31 01:59:52 +03:00
|
|
|
export function inheritable(parent: any): (child: any) => void;
|
2018-07-16 07:24:50 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/rlp' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
2018-07-16 07:24:50 +03:00
|
|
|
export function encode(object: any): string;
|
|
|
|
export function decode(data: Arrayish): any;
|
|
|
|
}
|
|
|
|
|
2018-07-17 08:46:27 +03:00
|
|
|
declare module 'ethers/utils/secp256k1' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { Arrayish, Signature } from 'ethers/utils/bytes';
|
2018-07-17 08:46:27 +03:00
|
|
|
export class KeyPair {
|
|
|
|
readonly privateKey: string;
|
|
|
|
readonly publicKey: string;
|
|
|
|
readonly compressedPublicKey: string;
|
|
|
|
readonly publicKeyBytes: Uint8Array;
|
2018-09-06 23:41:02 +03:00
|
|
|
constructor(privateKey: Arrayish | string);
|
|
|
|
sign(digest: Arrayish | string): Signature;
|
|
|
|
computeSharedSecret(otherKey: Arrayish | string): string;
|
2019-02-02 03:50:10 +03:00
|
|
|
_addPoint(other: Arrayish | string): string;
|
2018-09-06 23:41:02 +03:00
|
|
|
}
|
|
|
|
export function computePublicKey(key: Arrayish | string, compressed?: boolean): string;
|
|
|
|
export function computeAddress(key: Arrayish | string): string;
|
|
|
|
export function recoverPublicKey(digest: Arrayish | string, signature: Signature | string): string;
|
|
|
|
export function recoverAddress(digest: Arrayish | string, signature: Signature | string): string;
|
2018-07-17 08:46:27 +03:00
|
|
|
export function verifyMessage(message: Arrayish | string, signature: Signature | string): string;
|
|
|
|
}
|
|
|
|
|
2018-08-03 03:43:09 +03:00
|
|
|
declare module 'ethers/utils/utf8' {
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export enum UnicodeNormalizationForm {
|
|
|
|
current = "",
|
|
|
|
NFC = "NFC",
|
|
|
|
NFD = "NFD",
|
|
|
|
NFKC = "NFKC",
|
|
|
|
NFKD = "NFKD"
|
|
|
|
}
|
|
|
|
export function toUtf8Bytes(str: string, form?: UnicodeNormalizationForm): Uint8Array;
|
2018-08-21 14:13:52 +03:00
|
|
|
export function toUtf8String(bytes: Arrayish, ignoreErrors?: boolean): string;
|
|
|
|
export function formatBytes32String(text: string): string;
|
|
|
|
export function parseBytes32String(bytes: Arrayish): string;
|
2018-08-03 03:43:09 +03:00
|
|
|
}
|
|
|
|
|
2018-07-16 07:24:50 +03:00
|
|
|
declare module 'ethers/utils/units' {
|
2018-07-31 01:59:52 +03:00
|
|
|
import { BigNumber } from 'ethers/utils/bignumber';
|
|
|
|
import { BigNumberish } from 'ethers/utils/bignumber';
|
2018-09-26 23:15:13 +03:00
|
|
|
export function commify(value: string | number): string;
|
|
|
|
export function formatUnits(value: BigNumberish, unitType?: string | number): string;
|
2018-07-16 07:24:50 +03:00
|
|
|
export function parseUnits(value: string, unitType?: string | number): BigNumber;
|
2018-09-26 23:15:13 +03:00
|
|
|
export function formatEther(wei: BigNumberish): string;
|
2018-07-16 07:24:50 +03:00
|
|
|
export function parseEther(ether: string): BigNumber;
|
|
|
|
}
|
|
|
|
|
2018-08-03 03:43:09 +03:00
|
|
|
declare module 'ethers/utils/web' {
|
|
|
|
export type ConnectionInfo = {
|
|
|
|
url: string;
|
|
|
|
user?: string;
|
|
|
|
password?: string;
|
|
|
|
allowInsecure?: boolean;
|
2018-09-06 23:41:02 +03:00
|
|
|
timeout?: number;
|
|
|
|
headers?: {
|
|
|
|
[key: string]: string | number;
|
|
|
|
};
|
2018-08-03 03:43:09 +03:00
|
|
|
};
|
|
|
|
export interface OnceBlockable {
|
|
|
|
once(eventName: "block", handler: () => void): void;
|
|
|
|
}
|
|
|
|
export type PollOptions = {
|
|
|
|
timeout?: number;
|
|
|
|
floor?: number;
|
|
|
|
ceiling?: number;
|
|
|
|
interval?: number;
|
|
|
|
onceBlock?: OnceBlockable;
|
|
|
|
};
|
|
|
|
export function fetchJson(connection: string | ConnectionInfo, json: string, processFunc: (value: any) => any): Promise<any>;
|
|
|
|
export function poll(func: () => Promise<any>, options?: PollOptions): Promise<any>;
|
|
|
|
}
|
|
|
|
|
|
|
|
declare module 'ethers/utils/hmac' {
|
|
|
|
import { Arrayish } from 'ethers/utils/bytes';
|
|
|
|
export enum SupportedAlgorithms {
|
|
|
|
sha256 = "sha256",
|
|
|
|
sha512 = "sha512"
|
|
|
|
}
|
|
|
|
export function computeHmac(algorithm: SupportedAlgorithms, key: Arrayish, data: Arrayish): Uint8Array;
|
|
|
|
}
|
|
|
|
|