@restless/ethereum

Ethereum utilities for restless

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@restless/ethereum
0.3.02 years ago3 years agoMinified + gzip package size for @restless/ethereum in KB

Readme



NPM CircleCI License
Restless - Ethereum
Ethereum module for restless. Uses ethers.js. Provides utilities such as:
  1. asEthAddress
  2. asBigNumber

Installation

npm install @restless/ethereum
yarn add @restless/ethereum

Sanitizers

asEthAddress

Accepts any string that represents a valid ethereum address. Checks the checksum if present. Returns a normalized representation.
asEthAddress('0xA5fE...f213', 'path') // Result.ok(0xA5fE...f213)
asEthAddress('0xa5fe...f213', 'path') // Result.ok(0xA5fE...f213)
asEthAddress('bla bla bla', 'path') // Result.error([{expected: 'ethereum address', path: 'path'}])
asEthAddress(123, 'path') // Result.error([{expected: 'ethereum address', path: 'path'}])

asBigNumber

Accepts any string or number that represents an integer. Converts the integer to a BigNumber.
asBigNumber('123', 'path') // Result.ok(BigNumber(123))
asBigNumber(456, 'path') // Result.ok(BigNumber(456))
asBigNumber(1.5, 'path') // Result.error([{expected: 'big number', path: 'path'}])
asBigNumber(true, 'path') // Result.error([{expected: 'big number', path: 'path'}])

asHexBytes

Accepts any string that encodes binary data of specific length in hex format. The returned string is always lowercased.
const sanitizer = asHexBytes(3)

sanitizer('0x12ab56', 'path') // Result.ok('0x12ab56')
sanitizer('0x12AB56', 'path') // Result.ok('0x12ab56')
sanitizer('0x12AB5', 'path') // Result.error([{expected: 'hex string representing 3 bytes', path: 'path'}])
sanitizer(1234, 'path') // Result.error([{expected: 'hex string representing 3 bytes', path: 'path'}])

asTransactionHash

Accepts any string that can be a transaction hash.
const exampleHash = '0xd04b98f48e8f8bcc15c6ae5ac050801cd6dcfd428fb5f9e65c4e16e7807340fa'

asTransactionHash(exampleHash, 'path') // Result.ok('0xd04b...40fa')
asTransactionHash(exampleHash.toUpperCase(), 'path') // Result.ok('0xd04b...40fa')
sanitizer('0x12AB5', 'path') // Result.error([{expected: 'transaction hash', path: 'path'}])
sanitizer(1234, 'path') // Result.error([{expected: 'transaction hash', path: 'path'}])