2.0.0 • Published 2 years ago

soltypes v2.0.0

Weekly downloads
518
License
MIT
Repository
-
Last release
2 years ago

Solidity Types in Typescript

This library types Ethereum strings strictly using Solidity types. With this library, you can explicitly prevent to convert uint256 types to address or bytes20.

yarn add soltypes

Examples

import { Bytes32, Uint256, Uint32, Address } from 'soltypes'

> new Bytes32('0x1111111111111111111111111111111111111111111111111111111111111111')
// OK

> Bytes32.from('0x1111111111111111111111111111111111111111111111111111111111111111')
// OK

> Bytes32.from('1111111111111111111111111111111111111111111111111111111111111111')
// ERROR - does not start with 0x

> Bytes32.from('0x111111111111111')
// ERROR - bytes length is not 32

> const hash = new Bytes32('0x1111111111111111111111111111111111111111111111111111111111111111')

> hash.toString()
'0x1111111111111111111111111111111111111111111111111111111111111111'
// returns 0x string

> const n: Uint256 = hash.toUint()
> n.toString()
'7719472615821079694904732333912527190217998977709370935963838933860875309329'
// returns Uint256 instance

> Uint32.from('11111')
// OK

> Uint32.from('0x1111111')
// ERROR - should not start with 0x

> Uint32.from('111111111111111111111111')
// ERROR - overflow

> const uintA = Uint256('1234')

> const b: Bytes32 = uintA.toBytes()
> b.toString()
'0x00000000000000000000000000000000000000000000000000000000000004d2'
// returns 0x string

> Address.from('0x1234343434343434343434343434343434343434')
// OK

> Address.from('0xabcd1234')
// FAILs