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
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