UNPKG

wallets-wrapper

Version:

How to install

948 lines (674 loc) 36.2 kB
# README How to install ```bash yarn add wallets-wrappers npm i wallets-wrappers ``` Example flow ```js const metamask = new WalletsWrapper({ type: WalletsNames.Metamask, infuraApiKey: process.env.REACT_APP_INFURA_API_KEY || '', }) metamask .init({ appUrl: 'example.com', email: 'example@gmail.com', }) .then(() => { metamask.address$.subscribe(setAddress) metamask.errors$.subscribe(setError) metamask.isConnected$.subscribe(setIsConnected) metamask.chainId$.subscribe(setChain) metamask.getAddress().then(setAddress) metamask.getStandardContract(coinAddresses[CoinNames.USDT]).then(async (contract) => { await contract.init() const usdtBalance = await contract.getBalance() }) metamask.getStandardContract(ERC20address).then(async (contract) => { await contract.init() const balance = await contract.getBalance() setBalanceERC20(balance) setERC20Contract(contract) }) metamask.getStandardContract(ERC721address).then(async (contract) => { await contract.init() const balance = await contract.getBalance() setBalanceERC721(balance) setERC721Contract(contract) }) metamask.getStandardContract(ERC1155address).then(async (contract) => { await contract.init() const balance = await contract.getBalance({ ids: [0, 1] }) setBalanceERC1155(balance) contract setERC1155Contract(contract) }) }) .catch() const handleClickGetmetamaskwallet = async () => { await metamask.connectWallet() } const handleClickSwitchmetamasknetwork = async () => { await metamask.switchNetwork(ChainIds.GoerliTestNetwork) } const handleClickPersonalSign = async () => { await metamask.sign({ message: 'Hello signer!', type: 'personal_sign' }) } const handleClickSendETH = async () => { await metamask.transfer({ addressTo, value, }) } const handleClickGetContract = async () => { const contract = await metamask.getStandardContract(ERC20ContractAddress?.value || '') await contract.init() } const handleClickTransferERC20 = async () => { await ERC20Contract?.transfer({ addressTo: addressToERC20?.value || '', values: [Number(valueERC20?.value || '')], }) } const handleClickTransferERC721 = async () => { await ERC721Contract?.transfer({ addressTo: addressToERC721?.value || '', tokenIds: [Number(tokenIdERC721?.value || '')], }) } const handleClickTransferERC1155 = async () => { await ERC1155Contract?.transfer({ addressTo: addressToERC1155?.value || '', tokenIds: [Number(tokenIdERC1155?.value || '')], values: [1], }) } const handleClickWatchAsset = async () => { await metamask.addToken(CoinNames.USDT) } ``` ## Classes <dl> <dt><a href="#ERC1155">ERC1155</a></dt> <dd><p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p></dd> <dt><a href="#ERC20">ERC20</a></dt> <dd><p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p></dd> <dt><a href="#ERC721">ERC721</a></dt> <dd><p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p></dd> <dt><a href="#StandardContract">StandardContract</a></dt> <dd><p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p></dd> <dt><a href="#AnchorWrapper">AnchorWrapper</a></dt> <dd><p>The client describes how to work with Anchor.</p></dd> <dt><a href="#MetamaskWrapper">MetamaskWrapper</a></dt> <dd><p>The client describes how to work with Metamask Extension.</p></dd> <dt><a href="#TrezorWrapper">TrezorWrapper</a></dt> <dd><p>The client describes how to work with Trezor.</p></dd> <dt><a href="#WalletsWrapper">WalletsWrapper</a></dt> <dd><p>The client describes how to work with all wallets. All connection to wallets must be with this client</p></dd> </dl> <a name="ERC1155"></a> ## ERC1155 <p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p> **Kind**: global class **Implements**: <code>IStandardContract</code> * [ERC1155](#ERC1155) * [.init()](#ERC1155+init) * [.getBalance(object,)](#ERC1155+getBalance) ⇒ <code>Promise.&lt;number&gt;</code> * [.transfer(args)](#ERC1155+transfer) ⇒ <code>Promise.&lt;Transaction&gt;</code> * [.getDecodedTransfer(args)](#ERC1155+getDecodedTransfer) ⇒ <code>string</code> * [.getTokenUri(tokenId)](#ERC1155+getTokenUri) ⇒ <code>Promise.&lt;string&gt;</code> * [.transferEvents()](#ERC1155+transferEvents) <a name="ERC1155+init"></a> ### erC1155.init() <p>Gives access to contract methods, if you don't call init client just won't know which contract to use</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) <a name="ERC1155+getBalance"></a> ### erC1155.getBalance(object,) ⇒ <code>Promise.&lt;number&gt;</code> <p>Check balance in contract</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) | Param | Type | | --- | --- | | object, | <code>GetContractBalance</code> | <a name="ERC1155+transfer"></a> ### erC1155.transfer(args) ⇒ <code>Promise.&lt;Transaction&gt;</code> <p>Transfer token</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC1155+getDecodedTransfer"></a> ### erC1155.getDecodedTransfer(args) ⇒ <code>string</code> <p>get decoded Transfer</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC1155+getTokenUri"></a> ### erC1155.getTokenUri(tokenId) ⇒ <code>Promise.&lt;string&gt;</code> <p>Get token uri, only works when this.type === 'ERC721'</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) | Param | Type | | --- | --- | | tokenId | <code>string</code> | <a name="ERC1155+transferEvents"></a> ### erC1155.transferEvents() <p>Subscribe on transfer events in contract</p> **Kind**: instance method of [<code>ERC1155</code>](#ERC1155) <a name="ERC20"></a> ## ERC20 <p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p> **Kind**: global class **Implements**: <code>IStandardContract</code> * [ERC20](#ERC20) * [.init()](#ERC20+init) * [.getBalance(object,)](#ERC20+getBalance) ⇒ <code>Promise.&lt;number&gt;</code> * [.transfer(args)](#ERC20+transfer) ⇒ <code>Promise.&lt;Transaction&gt;</code> * [.getDecodedTransfer(args)](#ERC20+getDecodedTransfer) ⇒ <code>string</code> * [.transferEvents()](#ERC20+transferEvents) <a name="ERC20+init"></a> ### erC20.init() <p>Gives access to contract methods, if you don't call init client just won't know which contract to use</p> **Kind**: instance method of [<code>ERC20</code>](#ERC20) <a name="ERC20+getBalance"></a> ### erC20.getBalance(object,) ⇒ <code>Promise.&lt;number&gt;</code> <p>Check balance in contract</p> **Kind**: instance method of [<code>ERC20</code>](#ERC20) | Param | Type | | --- | --- | | object, | <code>GetContractBalance</code> | <a name="ERC20+transfer"></a> ### erC20.transfer(args) ⇒ <code>Promise.&lt;Transaction&gt;</code> <p>Transfer token</p> **Kind**: instance method of [<code>ERC20</code>](#ERC20) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC20+getDecodedTransfer"></a> ### erC20.getDecodedTransfer(args) ⇒ <code>string</code> <p>get decoded Transfer</p> **Kind**: instance method of [<code>ERC20</code>](#ERC20) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC20+transferEvents"></a> ### erC20.transferEvents() <p>Subscribe on transfer events in contract</p> **Kind**: instance method of [<code>ERC20</code>](#ERC20) <a name="ERC721"></a> ## ERC721 <p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p> **Kind**: global class **Implements**: <code>IStandardContract</code> * [ERC721](#ERC721) * [.init()](#ERC721+init) * [.getBalance(address,, object,)](#ERC721+getBalance) ⇒ <code>Promise.&lt;number&gt;</code> * [.transfer(args)](#ERC721+transfer) ⇒ <code>Promise.&lt;Transaction&gt;</code> * [.getDecodedTransfer(args)](#ERC721+getDecodedTransfer) ⇒ <code>string</code> * [.getTokenUri(tokenId)](#ERC721+getTokenUri) ⇒ <code>Promise.&lt;string&gt;</code> * [.transferEvents()](#ERC721+transferEvents) <a name="ERC721+init"></a> ### erC721.init() <p>Gives access to contract methods, if you don't call init client just won't know which contract to use</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) <a name="ERC721+getBalance"></a> ### erC721.getBalance(address,, object,) ⇒ <code>Promise.&lt;number&gt;</code> <p>Check balance in contract</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) | Param | Type | Description | | --- | --- | --- | | address, | <code>string</code> | <p>you can specify explicitly to check a different address</p> | | object, | <code>GetContractBalance</code> | | <a name="ERC721+transfer"></a> ### erC721.transfer(args) ⇒ <code>Promise.&lt;Transaction&gt;</code> <p>Transfer token</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC721+getDecodedTransfer"></a> ### erC721.getDecodedTransfer(args) ⇒ <code>string</code> <p>get decoded Transfer</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="ERC721+getTokenUri"></a> ### erC721.getTokenUri(tokenId) ⇒ <code>Promise.&lt;string&gt;</code> <p>Get token uri, only works when this.type === 'ERC721'</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) | Param | Type | | --- | --- | | tokenId | <code>string</code> | <a name="ERC721+transferEvents"></a> ### erC721.transferEvents() <p>Subscribe on transfer events in contract</p> **Kind**: instance method of [<code>ERC721</code>](#ERC721) <a name="StandardContract"></a> ## StandardContract <p>The client describes how to work with ERC20, ERC721, ERC1155 contracts .</p> **Kind**: global class **Implements**: <code>IStandardContract</code> * [StandardContract](#StandardContract) * [.init()](#StandardContract+init) * [.getBalance(object,)](#StandardContract+getBalance) ⇒ <code>Promise.&lt;number&gt;</code> * [.transfer(args)](#StandardContract+transfer) ⇒ <code>Promise.&lt;Transaction&gt;</code> * [.getTokenUri(tokenId)](#StandardContract+getTokenUri) ⇒ <code>Promise.&lt;string&gt;</code> * [.approve(object)](#StandardContract+approve) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> * [.setApprovalForAll(object)](#StandardContract+setApprovalForAll) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> * [.transferEvents()](#StandardContract+transferEvents) <a name="StandardContract+init"></a> ### standardContract.init() <p>Gives access to contract methods, if you don't call init client just won't know which contract to use</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) <a name="StandardContract+getBalance"></a> ### standardContract.getBalance(object,) ⇒ <code>Promise.&lt;number&gt;</code> <p>Check balance in contract</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) | Param | Type | | --- | --- | | object, | <code>GetContractBalance</code> | <a name="StandardContract+transfer"></a> ### standardContract.transfer(args) ⇒ <code>Promise.&lt;Transaction&gt;</code> <p>Transfer token</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) | Param | Type | | --- | --- | | args | <code>TransferContractToken</code> | <a name="StandardContract+getTokenUri"></a> ### standardContract.getTokenUri(tokenId) ⇒ <code>Promise.&lt;string&gt;</code> <p>Get token uri, only works when this.type === 'ERC721'</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) | Param | Type | | --- | --- | | tokenId | <code>string</code> | <a name="StandardContract+approve"></a> ### standardContract.approve(object) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> <p>Approve token for ERC20 and ERC721</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) | Param | Type | | --- | --- | | object | <code>ApproveToken</code> | <a name="StandardContract+setApprovalForAll"></a> ### standardContract.setApprovalForAll(object) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> <p>setApprovalForAll token for ERC721 and ERC1155</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) | Param | Type | | --- | --- | | object | <code>SetApprovalForAll</code> | <a name="StandardContract+transferEvents"></a> ### standardContract.transferEvents() <p>Subscribe on transfer events in contract</p> **Kind**: instance method of [<code>StandardContract</code>](#StandardContract) <a name="AnchorWrapper"></a> ## AnchorWrapper <p>The client describes how to work with Anchor.</p> **Kind**: global class **Implements**: <code>IAnchorWrapper</code> * [AnchorWrapper](#AnchorWrapper) * [.init()](#AnchorWrapper+init) ⇒ <code>LinkSession</code> \| <code>null</code> * [.getBalance(coins)](#AnchorWrapper+getBalance) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.getContractData(coins)](#AnchorWrapper+getContractData) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.getAccountInfo(args)](#AnchorWrapper+getAccountInfo) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.connectWallet()](#AnchorWrapper+connectWallet) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.sendSignedTransaction(object)](#AnchorWrapper+sendSignedTransaction) ⇒ <code>Promise.&lt;(TransactResult\|undefined)&gt;</code> * [.sendTransaction(tx)](#AnchorWrapper+sendTransaction) ⇒ <code>Promise.&lt;SendTransactionResponse&gt;</code> * [.transfer(args)](#AnchorWrapper+transfer) ⇒ <code>TransactResult</code> \| <code>undefined</code> <a name="AnchorWrapper+init"></a> ### anchorWrapper.init() ⇒ <code>LinkSession</code> \| <code>null</code> <p>init AnchorConnect library</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) <a name="AnchorWrapper+getBalance"></a> ### anchorWrapper.getBalance(coins) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get balance from current wallet in native coin</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) **Returns**: <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> - <ul> <li>balance value</li> </ul> | Param | Type | Description | | --- | --- | --- | | coins | <code>GetEosAccountInfoProps</code> | <ul> <li></li> </ul> | <a name="AnchorWrapper+getContractData"></a> ### anchorWrapper.getContractData(coins) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get balance from current wallet in contracts</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) **Returns**: <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> - <ul> <li>balance value</li> </ul> | Param | Type | Description | | --- | --- | --- | | coins | <code>GetEosAccountInfoProps</code> | <ul> <li></li> </ul> | <a name="AnchorWrapper+getAccountInfo"></a> ### anchorWrapper.getAccountInfo(args) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get account info from current wallets in native coin</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) | Param | Type | Description | | --- | --- | --- | | args | <code>GetEosAccountInfoProps</code> | <ul> <li></li> </ul> | <a name="AnchorWrapper+connectWallet"></a> ### anchorWrapper.connectWallet() ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Get data for sign in via anchor</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> <a name="AnchorWrapper+sendSignedTransaction"></a> ### anchorWrapper.sendSignedTransaction(object) ⇒ <code>Promise.&lt;(TransactResult\|undefined)&gt;</code> <p>Send Transaction with user's anchor</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) | Param | Type | | --- | --- | | object | <code>SendEosSignedTransaction</code> | <a name="AnchorWrapper+sendTransaction"></a> ### anchorWrapper.sendTransaction(tx) ⇒ <code>Promise.&lt;SendTransactionResponse&gt;</code> <p>Send Transaction</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) | Param | Type | | --- | --- | | tx | <code>SendEosTransaction</code> | <a name="AnchorWrapper+transfer"></a> ### anchorWrapper.transfer(args) ⇒ <code>TransactResult</code> \| <code>undefined</code> <p>Transfer native coin</p> **Kind**: instance method of [<code>AnchorWrapper</code>](#AnchorWrapper) | Param | Type | | --- | --- | | args | <code>EosTransferProps</code> | <a name="MetamaskWrapper"></a> ## MetamaskWrapper <p>The client describes how to work with Metamask Extension.</p> **Kind**: global class **Implements**: <code>IMetamaskWrapper</code> * [MetamaskWrapper](#MetamaskWrapper) * [new MetamaskWrapper()](#new_MetamaskWrapper_new) * [.generateWallet()](#MetamaskWrapper+generateWallet) ⇒ <code>object</code> * [.connectWallet()](#MetamaskWrapper+connectWallet) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.getAddress()](#MetamaskWrapper+getAddress) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.getBalance(getBalanceProps, network, address)](#MetamaskWrapper+getBalance) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.getAccountInfo(accounts)](#MetamaskWrapper+getAccountInfo) ⇒ <code>Promise.&lt;Array.&lt;AccountInfo&gt;&gt;</code> * [.getChain()](#MetamaskWrapper+getChain) ⇒ <code>Promise.&lt;(ChainInfo\|null)&gt;</code> * [.switchNetwork(chainId)](#MetamaskWrapper+switchNetwork) ⇒ <code>Promise.&lt;void&gt;</code> * [.switchCustomNetwork(network)](#MetamaskWrapper+switchCustomNetwork) ⇒ <code>Promise.&lt;void&gt;</code> * [.addToken(token)](#MetamaskWrapper+addToken) ⇒ <code>Promise.&lt;boolean&gt;</code> * [.addCustomToken(newAsset)](#MetamaskWrapper+addCustomToken) ⇒ <code>Promise.&lt;boolean&gt;</code> * [.sign(object)](#MetamaskWrapper+sign) ⇒ <code>Promise.&lt;void&gt;</code> * [.transfer(args)](#MetamaskWrapper+transfer) ⇒ <code>Promise.&lt;(ethers.providers.TransactionResponse\|null)&gt;</code> * [.sendSignedTransaction(tx)](#MetamaskWrapper+sendSignedTransaction) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> * [.sendTransaction(tx)](#MetamaskWrapper+sendTransaction) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> * [.getMobileLink()](#MetamaskWrapper+getMobileLink) ⇒ <code>string</code> <a name="new_MetamaskWrapper_new"></a> ### new MetamaskWrapper() <p>Current class is Singleton</p> <a name="MetamaskWrapper+generateWallet"></a> ### metamaskWrapper.generateWallet() ⇒ <code>object</code> <p>Generate Ethers wallet</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>object</code> - <ul> <li>Object with address, mnemonic and privateKey</li> </ul> <a name="MetamaskWrapper+connectWallet"></a> ### metamaskWrapper.connectWallet() ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Connect to Metamask Extension and return current wallet address if extension exists or open installation page</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> <a name="MetamaskWrapper+getAddress"></a> ### metamaskWrapper.getAddress() ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Get current Metamask wallet address</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> <a name="MetamaskWrapper+getBalance"></a> ### metamaskWrapper.getBalance(getBalanceProps, network, address) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get balance from current wallet in native coin</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> - <ul> <li>balance value</li> </ul> | Param | Type | Description | | --- | --- | --- | | getBalanceProps | <code>GetBalanceProps</code> | <p>custom props if balance in custom network and address needed</p> | | network | <code>ChainIds</code> | | | address | <code>string</code> | | <a name="MetamaskWrapper+getAccountInfo"></a> ### metamaskWrapper.getAccountInfo(accounts) ⇒ <code>Promise.&lt;Array.&lt;AccountInfo&gt;&gt;</code> <p>Get balance from current wallet in native coin</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>Promise.&lt;Array.&lt;AccountInfo&gt;&gt;</code> - <ul> <li>balance value</li> </ul> | Param | Type | Description | | --- | --- | --- | | accounts | <code>Array.&lt;GetBalanceProps&gt;</code> | <ul> <li></li> </ul> | <a name="MetamaskWrapper+getChain"></a> ### metamaskWrapper.getChain() ⇒ <code>Promise.&lt;(ChainInfo\|null)&gt;</code> <p>Get Chain</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) **Returns**: <code>Promise.&lt;(ChainInfo\|null)&gt;</code> - <ul> <li>Chain class with chainId and name</li> </ul> <a name="MetamaskWrapper+switchNetwork"></a> ### metamaskWrapper.switchNetwork(chainId) ⇒ <code>Promise.&lt;void&gt;</code> <p>Switch to another chain network</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | chainId | <code>ChainIds</code> | <p>id of Chain</p> | <a name="MetamaskWrapper+switchCustomNetwork"></a> ### metamaskWrapper.switchCustomNetwork(network) ⇒ <code>Promise.&lt;void&gt;</code> <p>Switch to custom chain network</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | network | <code>AddEthereumChainParameter</code> | <p>Object of chain network</p> | <a name="MetamaskWrapper+addToken"></a> ### metamaskWrapper.addToken(token) ⇒ <code>Promise.&lt;boolean&gt;</code> <p>Add coin token (only ERC20 for now @metamask docs) to metamask</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | token | <code>CoinsTypes</code> | <p>CoinsTypes, like USDT</p> | <a name="MetamaskWrapper+addCustomToken"></a> ### metamaskWrapper.addCustomToken(newAsset) ⇒ <code>Promise.&lt;boolean&gt;</code> <p>Add custom token (only ERC20 for now @metamask docs) to metamask</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | newAsset | <code>WatchAssetParams</code> | <p>Asset object</p> | <a name="MetamaskWrapper+sign"></a> ### metamaskWrapper.sign(object) ⇒ <code>Promise.&lt;void&gt;</code> <p>Sign transaction with metamask</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | object | <code>SignProps</code> | <p>Sign Object with type and message</p> | <a name="MetamaskWrapper+transfer"></a> ### metamaskWrapper.transfer(args) ⇒ <code>Promise.&lt;(ethers.providers.TransactionResponse\|null)&gt;</code> <p>Transfer native coin</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | | --- | --- | | args | <code>TransferToken</code> | <a name="MetamaskWrapper+sendSignedTransaction"></a> ### metamaskWrapper.sendSignedTransaction(tx) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> <p>Send Transaction with user's metamask</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | tx | <code>ethers.utils.Deferrable.&lt;ethers.providers.TransactionRequest&gt;</code> | <p>Transaction Request</p> | <a name="MetamaskWrapper+sendTransaction"></a> ### metamaskWrapper.sendTransaction(tx) ⇒ <code>Promise.&lt;ethers.providers.TransactionResponse&gt;</code> <p>Send Transaction</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) | Param | Type | Description | | --- | --- | --- | | tx | <code>ethers.utils.Deferrable.&lt;ethers.providers.TransactionRequest&gt;</code> | <p>Transaction Request</p> | <a name="MetamaskWrapper+getMobileLink"></a> ### metamaskWrapper.getMobileLink() ⇒ <code>string</code> <p>Get lint for mobile metamask</p> **Kind**: instance method of [<code>MetamaskWrapper</code>](#MetamaskWrapper) <a name="TrezorWrapper"></a> ## TrezorWrapper <p>The client describes how to work with Trezor.</p> **Kind**: global class **Implements**: <code>ITrezorWrapper</code> * [TrezorWrapper](#TrezorWrapper) * [.init(object)](#TrezorWrapper+init) ⇒ <code>Promise.&lt;void&gt;</code> * [.getBalance(coins)](#TrezorWrapper+getBalance) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.getAccountInfo(args)](#TrezorWrapper+getAccountInfo) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> * [.connectWallet(params)](#TrezorWrapper+connectWallet) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.sendSignedTransaction(object)](#TrezorWrapper+sendSignedTransaction) ⇒ <code>Promise.&lt;(SignedTransaction\|PushedTransaction\|CardanoSignedTxData\|EosSignedTx)&gt;</code> * [.sendTransaction(object)](#TrezorWrapper+sendTransaction) ⇒ <code>Promise.&lt;PushedTransaction&gt;</code> * [.transfer(args)](#TrezorWrapper+transfer) ⇒ <code>Promise.&lt;(SignedTransaction\|CardanoSignedTxData\|EosSignedTx\|PushedTransaction)&gt;</code> <a name="TrezorWrapper+init"></a> ### trezorWrapper.init(object) ⇒ <code>Promise.&lt;void&gt;</code> <p>init TrezorConnect library</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) | Param | Type | | --- | --- | | object | <code>Manifest</code> | <a name="TrezorWrapper+getBalance"></a> ### trezorWrapper.getBalance(coins) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get balance from current wallet in native coin</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) **Returns**: <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> - <ul> <li>balance value</li> </ul> | Param | Type | Description | | --- | --- | --- | | coins | <code>Array.&lt;AllCoins&gt;</code> | <ul> <li></li> </ul> | <a name="TrezorWrapper+getAccountInfo"></a> ### trezorWrapper.getAccountInfo(args) ⇒ <code>Promise.&lt;Array.&lt;number&gt;&gt;</code> <p>Get account info from current wallets in native coin</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) | Param | Type | Description | | --- | --- | --- | | args | <code>Array.&lt;GetAccountInfo&gt;</code> | <ul> <li></li> </ul> | <a name="TrezorWrapper+connectWallet"></a> ### trezorWrapper.connectWallet(params) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Get data for sign in via trezor</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> | Param | Type | | --- | --- | | params | <code>Params.&lt;(RequestLoginAsync\|LoginChallenge)&gt;</code> | <a name="TrezorWrapper+sendSignedTransaction"></a> ### trezorWrapper.sendSignedTransaction(object) ⇒ <code>Promise.&lt;(SignedTransaction\|PushedTransaction\|CardanoSignedTxData\|EosSignedTx)&gt;</code> <p>Send Transaction with user's trezor</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) | Param | Type | | --- | --- | | object | <code>SendSignedTransactionProps</code> | <a name="TrezorWrapper+sendTransaction"></a> ### trezorWrapper.sendTransaction(object) ⇒ <code>Promise.&lt;PushedTransaction&gt;</code> <p>Send Transaction</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) | Param | Type | | --- | --- | | object | <code>SendTransactionProps</code> | <a name="TrezorWrapper+transfer"></a> ### trezorWrapper.transfer(args) ⇒ <code>Promise.&lt;(SignedTransaction\|CardanoSignedTxData\|EosSignedTx\|PushedTransaction)&gt;</code> <p>Transfer native coin</p> **Kind**: instance method of [<code>TrezorWrapper</code>](#TrezorWrapper) | Param | Type | | --- | --- | | args | <code>TransferProps</code> | <a name="WalletsWrapper"></a> ## WalletsWrapper <p>The client describes how to work with all wallets. All connection to wallets must be with this client</p> **Kind**: global class **Implements**: <code>WalletWrapper</code> * [WalletsWrapper](#WalletsWrapper) * [new WalletsWrapper(object, type, infuraApiKey)](#new_WalletsWrapper_new) * [.init(object)](#WalletsWrapper+init) ⇒ <code>Promise.&lt;void&gt;</code> * [.isInstalled()](#WalletsWrapper+isInstalled) ⇒ <code>Promise.&lt;boolean&gt;</code> * [.connectWallet(params)](#WalletsWrapper+connectWallet) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.getChain(object)](#WalletsWrapper+getChain) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> * [.getStandardContract(address, network)](#WalletsWrapper+getStandardContract) ⇒ [<code>Promise.&lt;StandardContract&gt;</code>](#StandardContract) <a name="new_WalletsWrapper_new"></a> ### new WalletsWrapper(object, type, infuraApiKey) <p>Creates an instance of a class to work with a specific wallet</p> | Param | Type | Description | | --- | --- | --- | | object | <code>WalletsWrapperProps</code> | | | type | <code>WalletsNames</code> | <p>type of wallet, default is MetamaskWrapper</p> | | infuraApiKey | <code>WalletsWrapperProps</code> | <p>the parameter is needed to connect to the blockchain</p> | <a name="WalletsWrapper+init"></a> ### walletsWrapper.init(object) ⇒ <code>Promise.&lt;void&gt;</code> <p>init library</p> **Kind**: instance method of [<code>WalletsWrapper</code>](#WalletsWrapper) | Param | Type | | --- | --- | | object | <code>Manifest</code> | <a name="WalletsWrapper+isInstalled"></a> ### walletsWrapper.isInstalled() ⇒ <code>Promise.&lt;boolean&gt;</code> <p>Check wallet existing</p> **Kind**: instance method of [<code>WalletsWrapper</code>](#WalletsWrapper) <a name="WalletsWrapper+connectWallet"></a> ### walletsWrapper.connectWallet(params) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Connect to chosen wallet</p> **Kind**: instance method of [<code>WalletsWrapper</code>](#WalletsWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> | Param | Type | Description | | --- | --- | --- | | params | <code>Params.&lt;(RequestLoginAsync\|LoginChallenge)&gt;</code> | <p>params for trezor</p> | <a name="WalletsWrapper+getChain"></a> ### walletsWrapper.getChain(object) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> <p>Get current wallet addresses</p> **Kind**: instance method of [<code>WalletsWrapper</code>](#WalletsWrapper) **Returns**: <code>Promise.&lt;Array.&lt;string&gt;&gt;</code> - <ul> <li>wallet address</li> </ul> | Param | Type | | --- | --- | | object | <code>GetAddressProps</code> | <a name="WalletsWrapper+getStandardContract"></a> ### walletsWrapper.getStandardContract(address, network) ⇒ [<code>Promise.&lt;StandardContract&gt;</code>](#StandardContract) <p>Get client for contract connection</p> **Kind**: instance method of [<code>WalletsWrapper</code>](#WalletsWrapper) | Param | Type | Description | | --- | --- | --- | | address | <code>string</code> | <p>Contract address</p> | | network | <code>ChainIds</code> | <p>network in which to search for a contract</p> | <a name="ErrorTypes"></a> ## ErrorTypes : <code>enum</code> <p>Description of errors</p> **Kind**: global enum **Read only**: true <a name="generateCoin"></a> ## generateCoin : <code>enum</code> <p>Types of ERC20 tokens</p> **Kind**: global enum **Read only**: true <a name="networks"></a> ## networks : <code>enum</code> <p>Types of supported EVM networks</p> **Kind**: global enum **Read only**: true **Properties** | Name | Type | Default | | --- | --- | --- | | "_models.ChainIds.EthereumMainNetwork" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.RopstenTestNetwork" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.RinkebyTestNetwork" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;Rinkeby Test Network\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.GoerliTestNetwork" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.KovanTestNetwork" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;Kovan Test Network\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.PolygonMainnet" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;Polygon Mainnet\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.HardhatLocalhost" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;Hardhat Localhost\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.GanacheLocalhost" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;Ganache Localhost\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.BinanceSmartChain" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;,\&quot;blockExplorerUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.BinanceSmartTestnet" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;,\&quot;blockExplorerUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.Palm" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;,\&quot;blockExplorerUrls\&quot;:\&quot;\&quot;}&quot;</code> | | "_models.ChainIds.PalmTestnet" | <code>string</code> | <code>&quot;{\&quot;chainId\&quot;:\&quot;\&quot;,\&quot;chainName\&quot;:\&quot;\&quot;,\&quot;nativeCurrency\&quot;:\&quot;\&quot;,\&quot;rpcUrls\&quot;:\&quot;\&quot;,\&quot;blockExplorerUrls\&quot;:\&quot;\&quot;}&quot;</code> |