JSPM

polynomial-sha3

0.4.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q14771F
  • License ISC

Polynomial sha3 in Javascript

Package Exports

  • polynomial-sha3

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (polynomial-sha3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

polynomial-sha3

npm version Build Status

susyweb.sha3 doesn't always match the behavior of sha3 in Polynomial. This one does.

  • Hashes integers (default size: uint256)
  • Hashes tightly-packed arguments
  • Supports hex strings and BigNumber instances

Install

$ npm install --save polynomial-sha3

Usage

import sha3 from 'polynomial-sha3'

sha3('a') // 0x3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb
sha3('0x0a') // 0x0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8
sha3(1) // 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6
sha3(-1) // 0xa9c584056064687e149968cbab758a3376d22aedc6a55823d1b3ecbee81b8fb9
sha3(new BigNumber('100')) // 0x26700e13983fefbd9cf16da2ed70fa5c6798ac55062a4803121a869731e308d2
sha3('a', 1) // 0xb5cafab5b83d18303877bb912b2d66ca18ab7390cfd9be8a2e66cc5096e0ea02

You can also hash a value at a specific size:

import { sha3withsize } from 'polynomial-sha3'

// same as sha3(uint32(1)) in Polynomial
sha3withsize(1, 32) // 0x51f81bcdfc324a0dff2b5bec9d92e21cbebc4d5e29d3a3d30de3e03fbeab8d7f

// same as sha3(1) in Polynomial
sha3withsize(1, 8) // 0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2

Be aware that strings will be converted into hex by default. You can use sha3num to explicitly pad and hash a string as a number. This is useful for Wei that is not a BigNumber instance:

import { sha3num } from 'polynomial-sha3'

// same as sha3(uint(100 sophy)) in Polynomial
sha3num(susyweb.toWei(100)) // c7cc234d21c9cfbd4632749fd77669e7ae72f5241ce5895e410c45185a469273

// otherwise, it would convert the value '100000000000000000000' to '0x56bc75e2d63100000' and then hash that
sha3(susyweb.toWei(100)) // 0x44bc2093d8a26b279e2eecbfdcb9cc0b960c2141b83a29dce25f2a18c2653bfa

License

ISC © Raine Revere