README
How to install
yarn add wallets-wrappers
npm i wallets-wrappers
Example flow
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
- ERC1155
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
- ERC20
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
- ERC721
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
- StandardContract
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
- AnchorWrapper
The client describes how to work with Anchor.
- MetamaskWrapper
The client describes how to work with Metamask Extension.
- TrezorWrapper
The client describes how to work with Trezor.
- WalletsWrapper
The client describes how to work with all wallets. All connection to wallets must be with this client
ERC1155
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
Kind: global class
Implements: IStandardContract
-
ERC1155
- .init()
-
.getBalance(object,) ⇒
Promise.<number>
-
.transfer(args) ⇒
Promise.<Transaction>
-
.getDecodedTransfer(args) ⇒
string
-
.getTokenUri(tokenId) ⇒
Promise.<string>
- .transferEvents()
erC1155.init()
Gives access to contract methods, if you don't call init client just won't know which contract to use
Kind: instance method of ERC1155
Promise.<number>
erC1155.getBalance(object,) ⇒ Check balance in contract
Kind: instance method of ERC1155
Param | Type |
---|---|
object, | GetContractBalance |
Promise.<Transaction>
erC1155.transfer(args) ⇒ Transfer token
Kind: instance method of ERC1155
Param | Type |
---|---|
args | TransferContractToken |
string
erC1155.getDecodedTransfer(args) ⇒ get decoded Transfer
Kind: instance method of ERC1155
Param | Type |
---|---|
args | TransferContractToken |
Promise.<string>
erC1155.getTokenUri(tokenId) ⇒ Get token uri, only works when this.type === 'ERC721'
Kind: instance method of ERC1155
Param | Type |
---|---|
tokenId | string |
erC1155.transferEvents()
Subscribe on transfer events in contract
Kind: instance method of ERC1155
ERC20
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
Kind: global class
Implements: IStandardContract
-
ERC20
- .init()
-
.getBalance(object,) ⇒
Promise.<number>
-
.transfer(args) ⇒
Promise.<Transaction>
-
.getDecodedTransfer(args) ⇒
string
- .transferEvents()
erC20.init()
Gives access to contract methods, if you don't call init client just won't know which contract to use
Kind: instance method of ERC20
Promise.<number>
erC20.getBalance(object,) ⇒ Check balance in contract
Kind: instance method of ERC20
Param | Type |
---|---|
object, | GetContractBalance |
Promise.<Transaction>
erC20.transfer(args) ⇒ Transfer token
Kind: instance method of ERC20
Param | Type |
---|---|
args | TransferContractToken |
string
erC20.getDecodedTransfer(args) ⇒ get decoded Transfer
Kind: instance method of ERC20
Param | Type |
---|---|
args | TransferContractToken |
erC20.transferEvents()
Subscribe on transfer events in contract
Kind: instance method of ERC20
ERC721
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
Kind: global class
Implements: IStandardContract
-
ERC721
- .init()
-
.getBalance(address,, object,) ⇒
Promise.<number>
-
.transfer(args) ⇒
Promise.<Transaction>
-
.getDecodedTransfer(args) ⇒
string
-
.getTokenUri(tokenId) ⇒
Promise.<string>
- .transferEvents()
erC721.init()
Gives access to contract methods, if you don't call init client just won't know which contract to use
Kind: instance method of ERC721
Promise.<number>
erC721.getBalance(address,, object,) ⇒ Check balance in contract
Kind: instance method of ERC721
Param | Type | Description |
---|---|---|
address, | string |
you can specify explicitly to check a different address |
object, | GetContractBalance |
Promise.<Transaction>
erC721.transfer(args) ⇒ Transfer token
Kind: instance method of ERC721
Param | Type |
---|---|
args | TransferContractToken |
string
erC721.getDecodedTransfer(args) ⇒ get decoded Transfer
Kind: instance method of ERC721
Param | Type |
---|---|
args | TransferContractToken |
Promise.<string>
erC721.getTokenUri(tokenId) ⇒ Get token uri, only works when this.type === 'ERC721'
Kind: instance method of ERC721
Param | Type |
---|---|
tokenId | string |
erC721.transferEvents()
Subscribe on transfer events in contract
Kind: instance method of ERC721
StandardContract
The client describes how to work with ERC20, ERC721, ERC1155 contracts .
Kind: global class
Implements: IStandardContract
-
StandardContract
- .init()
-
.getBalance(object,) ⇒
Promise.<number>
-
.transfer(args) ⇒
Promise.<Transaction>
-
.getTokenUri(tokenId) ⇒
Promise.<string>
-
.approve(object) ⇒
Promise.<ethers.providers.TransactionResponse>
-
.setApprovalForAll(object) ⇒
Promise.<ethers.providers.TransactionResponse>
- .transferEvents()
standardContract.init()
Gives access to contract methods, if you don't call init client just won't know which contract to use
Kind: instance method of StandardContract
Promise.<number>
standardContract.getBalance(object,) ⇒ Check balance in contract
Kind: instance method of StandardContract
Param | Type |
---|---|
object, | GetContractBalance |
Promise.<Transaction>
standardContract.transfer(args) ⇒ Transfer token
Kind: instance method of StandardContract
Param | Type |
---|---|
args | TransferContractToken |
Promise.<string>
standardContract.getTokenUri(tokenId) ⇒ Get token uri, only works when this.type === 'ERC721'
Kind: instance method of StandardContract
Param | Type |
---|---|
tokenId | string |
Promise.<ethers.providers.TransactionResponse>
standardContract.approve(object) ⇒ Approve token for ERC20 and ERC721
Kind: instance method of StandardContract
Param | Type |
---|---|
object | ApproveToken |
Promise.<ethers.providers.TransactionResponse>
standardContract.setApprovalForAll(object) ⇒ setApprovalForAll token for ERC721 and ERC1155
Kind: instance method of StandardContract
Param | Type |
---|---|
object | SetApprovalForAll |
standardContract.transferEvents()
Subscribe on transfer events in contract
Kind: instance method of StandardContract
AnchorWrapper
The client describes how to work with Anchor.
Kind: global class
Implements: IAnchorWrapper
-
AnchorWrapper
-
.init() ⇒
LinkSession
|null
-
.getBalance(coins) ⇒
Promise.<Array.<number>>
-
.getContractData(coins) ⇒
Promise.<Array.<number>>
-
.getAccountInfo(args) ⇒
Promise.<Array.<number>>
-
.connectWallet() ⇒
Promise.<Array.<string>>
-
.sendSignedTransaction(object) ⇒
Promise.<(TransactResult|undefined)>
-
.sendTransaction(tx) ⇒
Promise.<SendTransactionResponse>
-
.transfer(args) ⇒
TransactResult
|undefined
-
.init() ⇒
LinkSession
| null
anchorWrapper.init() ⇒ init AnchorConnect library
Kind: instance method of AnchorWrapper
Promise.<Array.<number>>
anchorWrapper.getBalance(coins) ⇒ Get balance from current wallet in native coin
Kind: instance method of AnchorWrapper
Returns: Promise.<Array.<number>>
-
- balance value
Param | Type | Description |
---|---|---|
coins | GetEosAccountInfoProps |
Promise.<Array.<number>>
anchorWrapper.getContractData(coins) ⇒ Get balance from current wallet in contracts
Kind: instance method of AnchorWrapper
Returns: Promise.<Array.<number>>
-
- balance value
Param | Type | Description |
---|---|---|
coins | GetEosAccountInfoProps |
Promise.<Array.<number>>
anchorWrapper.getAccountInfo(args) ⇒ Get account info from current wallets in native coin
Kind: instance method of AnchorWrapper
Param | Type | Description |
---|---|---|
args | GetEosAccountInfoProps |
Promise.<Array.<string>>
anchorWrapper.connectWallet() ⇒ Get data for sign in via anchor
Kind: instance method of AnchorWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Promise.<(TransactResult|undefined)>
anchorWrapper.sendSignedTransaction(object) ⇒ Send Transaction with user's anchor
Kind: instance method of AnchorWrapper
Param | Type |
---|---|
object | SendEosSignedTransaction |
Promise.<SendTransactionResponse>
anchorWrapper.sendTransaction(tx) ⇒ Send Transaction
Kind: instance method of AnchorWrapper
Param | Type |
---|---|
tx | SendEosTransaction |
TransactResult
| undefined
anchorWrapper.transfer(args) ⇒ Transfer native coin
Kind: instance method of AnchorWrapper
Param | Type |
---|---|
args | EosTransferProps |
MetamaskWrapper
The client describes how to work with Metamask Extension.
Kind: global class
Implements: IMetamaskWrapper
-
MetamaskWrapper
- new MetamaskWrapper()
-
.generateWallet() ⇒
object
-
.connectWallet() ⇒
Promise.<Array.<string>>
-
.getAddress() ⇒
Promise.<Array.<string>>
-
.getBalance(getBalanceProps, network, address) ⇒
Promise.<Array.<number>>
-
.getAccountInfo(accounts) ⇒
Promise.<Array.<AccountInfo>>
-
.getChain() ⇒
Promise.<(ChainInfo|null)>
-
.switchNetwork(chainId) ⇒
Promise.<void>
-
.switchCustomNetwork(network) ⇒
Promise.<void>
-
.addToken(token) ⇒
Promise.<boolean>
-
.addCustomToken(newAsset) ⇒
Promise.<boolean>
-
.sign(object) ⇒
Promise.<void>
-
.transfer(args) ⇒
Promise.<(ethers.providers.TransactionResponse|null)>
-
.sendSignedTransaction(tx) ⇒
Promise.<ethers.providers.TransactionResponse>
-
.sendTransaction(tx) ⇒
Promise.<ethers.providers.TransactionResponse>
-
.getMobileLink() ⇒
string
new MetamaskWrapper()
Current class is Singleton
object
metamaskWrapper.generateWallet() ⇒ Generate Ethers wallet
Kind: instance method of MetamaskWrapper
Returns: object
-
- Object with address, mnemonic and privateKey
Promise.<Array.<string>>
metamaskWrapper.connectWallet() ⇒ Connect to Metamask Extension and return current wallet address if extension exists or open installation page
Kind: instance method of MetamaskWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Promise.<Array.<string>>
metamaskWrapper.getAddress() ⇒ Get current Metamask wallet address
Kind: instance method of MetamaskWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Promise.<Array.<number>>
metamaskWrapper.getBalance(getBalanceProps, network, address) ⇒ Get balance from current wallet in native coin
Kind: instance method of MetamaskWrapper
Returns: Promise.<Array.<number>>
-
- balance value
Param | Type | Description |
---|---|---|
getBalanceProps | GetBalanceProps |
custom props if balance in custom network and address needed |
network | ChainIds |
|
address | string |
Promise.<Array.<AccountInfo>>
metamaskWrapper.getAccountInfo(accounts) ⇒ Get balance from current wallet in native coin
Kind: instance method of MetamaskWrapper
Returns: Promise.<Array.<AccountInfo>>
-
- balance value
Param | Type | Description |
---|---|---|
accounts | Array.<GetBalanceProps> |
Promise.<(ChainInfo|null)>
metamaskWrapper.getChain() ⇒ Get Chain
Kind: instance method of MetamaskWrapper
Returns: Promise.<(ChainInfo|null)>
-
- Chain class with chainId and name
Promise.<void>
metamaskWrapper.switchNetwork(chainId) ⇒ Switch to another chain network
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
chainId | ChainIds |
id of Chain |
Promise.<void>
metamaskWrapper.switchCustomNetwork(network) ⇒ Switch to custom chain network
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
network | AddEthereumChainParameter |
Object of chain network |
Promise.<boolean>
metamaskWrapper.addToken(token) ⇒ Add coin token (only ERC20 for now @metamask docs) to metamask
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
token | CoinsTypes |
CoinsTypes, like USDT |
Promise.<boolean>
metamaskWrapper.addCustomToken(newAsset) ⇒ Add custom token (only ERC20 for now @metamask docs) to metamask
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
newAsset | WatchAssetParams |
Asset object |
Promise.<void>
metamaskWrapper.sign(object) ⇒ Sign transaction with metamask
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
object | SignProps |
Sign Object with type and message |
Promise.<(ethers.providers.TransactionResponse|null)>
metamaskWrapper.transfer(args) ⇒ Transfer native coin
Kind: instance method of MetamaskWrapper
Param | Type |
---|---|
args | TransferToken |
Promise.<ethers.providers.TransactionResponse>
metamaskWrapper.sendSignedTransaction(tx) ⇒ Send Transaction with user's metamask
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
tx | ethers.utils.Deferrable.<ethers.providers.TransactionRequest> |
Transaction Request |
Promise.<ethers.providers.TransactionResponse>
metamaskWrapper.sendTransaction(tx) ⇒ Send Transaction
Kind: instance method of MetamaskWrapper
Param | Type | Description |
---|---|---|
tx | ethers.utils.Deferrable.<ethers.providers.TransactionRequest> |
Transaction Request |
string
metamaskWrapper.getMobileLink() ⇒ Get lint for mobile metamask
Kind: instance method of MetamaskWrapper
TrezorWrapper
The client describes how to work with Trezor.
Kind: global class
Implements: ITrezorWrapper
-
TrezorWrapper
-
.init(object) ⇒
Promise.<void>
-
.getBalance(coins) ⇒
Promise.<Array.<number>>
-
.getAccountInfo(args) ⇒
Promise.<Array.<number>>
-
.connectWallet(params) ⇒
Promise.<Array.<string>>
-
.sendSignedTransaction(object) ⇒
Promise.<(SignedTransaction|PushedTransaction|CardanoSignedTxData|EosSignedTx)>
-
.sendTransaction(object) ⇒
Promise.<PushedTransaction>
-
.transfer(args) ⇒
Promise.<(SignedTransaction|CardanoSignedTxData|EosSignedTx|PushedTransaction)>
-
.init(object) ⇒
Promise.<void>
trezorWrapper.init(object) ⇒ init TrezorConnect library
Kind: instance method of TrezorWrapper
Param | Type |
---|---|
object | Manifest |
Promise.<Array.<number>>
trezorWrapper.getBalance(coins) ⇒ Get balance from current wallet in native coin
Kind: instance method of TrezorWrapper
Returns: Promise.<Array.<number>>
-
- balance value
Param | Type | Description |
---|---|---|
coins | Array.<AllCoins> |
Promise.<Array.<number>>
trezorWrapper.getAccountInfo(args) ⇒ Get account info from current wallets in native coin
Kind: instance method of TrezorWrapper
Param | Type | Description |
---|---|---|
args | Array.<GetAccountInfo> |
Promise.<Array.<string>>
trezorWrapper.connectWallet(params) ⇒ Get data for sign in via trezor
Kind: instance method of TrezorWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Param | Type |
---|---|
params | Params.<(RequestLoginAsync|LoginChallenge)> |
Promise.<(SignedTransaction|PushedTransaction|CardanoSignedTxData|EosSignedTx)>
trezorWrapper.sendSignedTransaction(object) ⇒ Send Transaction with user's trezor
Kind: instance method of TrezorWrapper
Param | Type |
---|---|
object | SendSignedTransactionProps |
Promise.<PushedTransaction>
trezorWrapper.sendTransaction(object) ⇒ Send Transaction
Kind: instance method of TrezorWrapper
Param | Type |
---|---|
object | SendTransactionProps |
Promise.<(SignedTransaction|CardanoSignedTxData|EosSignedTx|PushedTransaction)>
trezorWrapper.transfer(args) ⇒ Transfer native coin
Kind: instance method of TrezorWrapper
Param | Type |
---|---|
args | TransferProps |
WalletsWrapper
The client describes how to work with all wallets. All connection to wallets must be with this client
Kind: global class
Implements: WalletWrapper
-
WalletsWrapper
- new WalletsWrapper(object, type, infuraApiKey)
-
.init(object) ⇒
Promise.<void>
-
.isInstalled() ⇒
Promise.<boolean>
-
.connectWallet(params) ⇒
Promise.<Array.<string>>
-
.getChain(object) ⇒
Promise.<Array.<string>>
-
.getStandardContract(address, network) ⇒
Promise.<StandardContract>
new WalletsWrapper(object, type, infuraApiKey)
Creates an instance of a class to work with a specific wallet
Param | Type | Description |
---|---|---|
object | WalletsWrapperProps |
|
type | WalletsNames |
type of wallet, default is MetamaskWrapper |
infuraApiKey | WalletsWrapperProps |
the parameter is needed to connect to the blockchain |
Promise.<void>
walletsWrapper.init(object) ⇒ init library
Kind: instance method of WalletsWrapper
Param | Type |
---|---|
object | Manifest |
Promise.<boolean>
walletsWrapper.isInstalled() ⇒ Check wallet existing
Kind: instance method of WalletsWrapper
Promise.<Array.<string>>
walletsWrapper.connectWallet(params) ⇒ Connect to chosen wallet
Kind: instance method of WalletsWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Param | Type | Description |
---|---|---|
params | Params.<(RequestLoginAsync|LoginChallenge)> |
params for trezor |
Promise.<Array.<string>>
walletsWrapper.getChain(object) ⇒ Get current wallet addresses
Kind: instance method of WalletsWrapper
Returns: Promise.<Array.<string>>
-
- wallet address
Param | Type |
---|---|
object | GetAddressProps |
Promise.<StandardContract>
walletsWrapper.getStandardContract(address, network) ⇒ Get client for contract connection
Kind: instance method of WalletsWrapper
Param | Type | Description |
---|---|---|
address | string |
Contract address |
network | ChainIds |
network in which to search for a contract |
enum
ErrorTypes : Description of errors
Kind: global enum
Read only: true
enum
generateCoin : Types of ERC20 tokens
Kind: global enum
Read only: true
enum
networks : Types of supported EVM networks
Kind: global enum
Read only: true
Properties
Name | Type | Default |
---|---|---|
"_models.ChainIds.EthereumMainNetwork" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.RopstenTestNetwork" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.RinkebyTestNetwork" | string |
"{"chainId":"","chainName":"Rinkeby Test Network","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.GoerliTestNetwork" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.KovanTestNetwork" | string |
"{"chainId":"","chainName":"Kovan Test Network","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.PolygonMainnet" | string |
"{"chainId":"","chainName":"Polygon Mainnet","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.HardhatLocalhost" | string |
"{"chainId":"","chainName":"Hardhat Localhost","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.GanacheLocalhost" | string |
"{"chainId":"","chainName":"Ganache Localhost","nativeCurrency":"","rpcUrls":""}" |
"_models.ChainIds.BinanceSmartChain" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":"","blockExplorerUrls":""}" |
"_models.ChainIds.BinanceSmartTestnet" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":"","blockExplorerUrls":""}" |
"_models.ChainIds.Palm" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":"","blockExplorerUrls":""}" |
"_models.ChainIds.PalmTestnet" | string |
"{"chainId":"","chainName":"","nativeCurrency":"","rpcUrls":"","blockExplorerUrls":""}" |