10.3.0 • Published 9 months ago

@depay/web3-tokens-evm v10.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Quickstart

yarn add @depay/web3-tokens

or

npm install --save @depay/web3-tokens
import Token from '@depay/web3-tokens'

let token = new Token({
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
});

token.address // '0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb'
await token.decimals() // 18
await token.symbol() // 'DEPAY'
await token.name() // 'DePay'

Support

This library supports the following blockchains:

Platform specific packaging

In case you want to use and package only specific platforms, use platform-specific packages:

EVM specific packaging

import Token from '@depay/web3-tokens-evm'

SOLANA specific packaging

import Token from '@depay/web3-tokens-solana'

Functionalities

initalize (new)

import Token from '@depay/web3-tokens'

let token = new Token({
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
});

decimals

Retrieves token decimals

await token.decimals() // 18

symbol

Retrieves token symbol

await token.symbol() // DEPAY

name

Retrieves token name

await token.name() // DePay

name for NFT by id

Retrieves token name for token address by NFT id:

await token.name({ id: '42745998150656004690816543961586238000273307462307754421658803578179357246440' }) // NFT Butler Lifetime License

balance

Provides the balance (BigNumber) of the given account:

await token.balance('0xb0252f13850a4823706607524de0b146820F2240') // BigNumber {_hex: "0x0b896d5e9eeaabf4f1", _isBigNumber: true}

this also works for the native token of the given blockchain:

let token = new Token({ ..., address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' })
await token.balance('0xb0252f13850a4823706607524de0b146820F2240') // BigNumber {_hex: "0x0b896d5e9eeaabf4f1", _isBigNumber: true}

balance for NFTs (by id)

If you pass a second parameter, it will be used to get the balance for the given account for the given token id:

await token.balance('0xb0252f13850a4823706607524de0b146820F2240', '42745998150656004690816543961586238000273307462307754421658803578179357246440')

BigNumber

Provides the BigNumber amount for a given token (based on the tokens decimals) based on a human readable amount:

let token = new Token({
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
}) 

await token.BigNumber(1) // BigNumber '1000000000000000000'
await Token.BigNumber({
  amount: 1,
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
}) // BigNumber '1000000000000000000'

readable

Provides a human readable amount based on a given BigInt number.

  • Ending zeros will be eliminated 1.30000 -> 1.3

  • Decimals are dropped if there are none 1.00000 -> 1

await Token.readable({
  amount: '1231211111210000000',
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
}) // "1.23121111121"
let token = new Token({
  blockchain: 'ethereum',
  address: '0xa0bed124a09ac2bd941b10349d8d224fe3c955eb'
})

await token.readable('1231211111210000000') // "1.23121111121"

Token Standards

EVM: Token Standards

import Token from '@depay/web3-tokens'

Token.ethereum['20'] // [...] <XYZ>20 standard
Token.bsc['20'] // [...] <XYZ>20 standard

Token.ethereum.ERC20 // [...] ERC20 ABI
Token.bsc.BEP20 // [...] BEP20 ABI

Token.ethereum.WRAPPED // [...] WETH ABI
Token.bsc.WRAPPED // [...] WETH ABI

DEFAULT references the broad default token standard on the respective blockchain:

import Token from '@depay/web3-tokens'

Token.ethereum.DEFAULT // ERC20
Token.bsc.DEFAULT // BEP20

Token[blockchain].DEFAULT

Solana: Token Standards, Constants, Layouts and helper methods

import Token from '@depay/web3-tokens'

Token.solana
// MINT_LAYOUT,
// METADATA_LAYOUT,
// TRANSFER_LAYOUT,
// METADATA_ACCOUNT,
// TOKEN_PROGRAM,
// ASSOCIATED_TOKEN_PROGRAM,
// findProgramAddress({ token, owner })
// findAccount({ token, owner })
// async createTransferInstruction({ token, amount, from, to })
// async createAssociatedTokenAccountInstruction({ token, owner, payer })
// initializeAccountInstruction({ account, token, owner })
// closeAccountInstruction({ account, owner })
// getMetaData
// getMetaDataPDA

Development

Get started

yarn install
yarn dev

Release

npm publish
10.2.0

9 months ago

10.3.0

9 months ago

10.0.0

11 months ago

10.1.0

11 months ago

9.20.0

12 months ago

9.20.1

11 months ago

9.19.1

1 year ago

9.19.2

1 year ago

9.19.3

1 year ago

9.19.4

1 year ago

9.18.0

1 year ago

9.19.0

1 year ago

9.17.0

1 year ago

9.16.1

1 year ago

9.16.0

1 year ago

9.15.0

1 year ago

9.13.0

1 year ago

9.14.0

1 year ago

9.12.8

1 year ago

9.12.7

2 years ago

9.12.6

2 years ago

9.12.5

2 years ago

9.12.4

2 years ago

9.12.3

2 years ago

9.12.2

2 years ago

9.12.1

2 years ago

9.12.0

2 years ago

9.11.4

2 years ago

9.11.3

2 years ago