@restless/ethereum
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

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'}])

Dependencies (2)

Dev Dependencies (8)

Package Sidebar

Install

npm i @restless/ethereum

Weekly Downloads

280

Version

0.3.0

License

Unlicense

Unpacked Size

98.5 kB

Total Files

19

Last publish

Collaborators

  • ethworks
  • sz-piotr