import { BigNumber } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; import { ContractAbi, LogWithDecodedArgs } from 'ethereum-types'; import { BlockRange, EventCallback, IndexedFilterValues, TransactionOpts } from '../types'; import { ContractWrapper } from './contract_wrapper'; import { ERC20TokenWrapper } from './erc20_token_wrapper'; import { WETH9EventArgs, WETH9Events } from './generated/weth9'; /** * This class includes all the functionality related to interacting with a wrapped Ether ERC20 token contract. * The caller can convert ETH into the equivalent number of wrapped ETH ERC20 tokens and back. */ export declare class EtherTokenWrapper extends ContractWrapper { abi: ContractAbi; private _etherTokenContractsByAddress; private _erc20TokenWrapper; /** * Instantiate EtherTokenWrapper. * @param web3Wrapper Web3Wrapper instance to use * @param networkId Desired networkId * @param erc20TokenWrapper The ERC20TokenWrapper instance to use * @param blockPollingIntervalMs The block polling interval to use for active subscriptions */ constructor(web3Wrapper: Web3Wrapper, networkId: number, erc20TokenWrapper: ERC20TokenWrapper, blockPollingIntervalMs?: number); /** * Deposit ETH into the Wrapped ETH smart contract and issues the equivalent number of wrapped ETH tokens * to the depositor address. These wrapped ETH tokens can be used in 0x trades and are redeemable for 1-to-1 * for ETH. * @param etherTokenAddress EtherToken address you wish to deposit into. * @param amountInWei Amount of ETH in Wei the caller wishes to deposit. * @param depositor The hex encoded user Ethereum address that would like to make the deposit. * @param txOpts Transaction parameters. * @return Transaction hash. */ depositAsync(etherTokenAddress: string, amountInWei: BigNumber, depositor: string, txOpts?: TransactionOpts): Promise; /** * Withdraw ETH to the withdrawer's address from the wrapped ETH smart contract in exchange for the * equivalent number of wrapped ETH tokens. * @param etherTokenAddress EtherToken address you wish to withdraw from. * @param amountInWei Amount of ETH in Wei the caller wishes to withdraw. * @param withdrawer The hex encoded user Ethereum address that would like to make the withdrawal. * @param txOpts Transaction parameters. * @return Transaction hash. */ withdrawAsync(etherTokenAddress: string, amountInWei: BigNumber, withdrawer: string, txOpts?: TransactionOpts): Promise; /** * Gets historical logs without creating a subscription * @param etherTokenAddress An address of the ether token that emitted the logs. * @param eventName The ether token contract event you would like to subscribe to. * @param blockRange Block range to get logs from. * @param indexFilterValues An object where the keys are indexed args returned by the event and * the value is the value you are interested in. E.g `{_owner: aUserAddressHex}` * @return Array of logs that match the parameters */ getLogsAsync(etherTokenAddress: string, eventName: WETH9Events, blockRange: BlockRange, indexFilterValues: IndexedFilterValues): Promise>>; /** * Subscribe to an event type emitted by the Token contract. * @param etherTokenAddress The hex encoded address where the ether token is deployed. * @param eventName The ether token contract event you would like to subscribe to. * @param indexFilterValues An object where the keys are indexed args returned by the event and * the value is the value you are interested in. E.g `{_owner: aUserAddressHex}` * @param callback Callback that gets called when a log is added/removed * @param isVerbose Enable verbose subscription warnings (e.g recoverable network issues encountered) * @return Subscription token used later to unsubscribe */ subscribe(etherTokenAddress: string, eventName: WETH9Events, indexFilterValues: IndexedFilterValues, callback: EventCallback, isVerbose?: boolean): string; /** * Cancel a subscription * @param subscriptionToken Subscription token returned by `subscribe()` */ unsubscribe(subscriptionToken: string): void; /** * Cancels all existing subscriptions */ unsubscribeAll(): void; /** * Retrieves the Ethereum address of the EtherToken contract deployed on the network * that the user-passed web3 provider is connected to. If it's not Kovan, Ropsten, Rinkeby, Mainnet or TestRPC * (networkId: 50), it will return undefined (e.g a private network). * @returns The Ethereum address of the EtherToken contract or undefined. */ getContractAddressIfExists(): string | undefined; private _invalidateContractInstance; private _getEtherTokenContractAsync; } //# sourceMappingURL=ether_token_wrapper.d.ts.map