import { ERC20 } from '@services/EthService' ; import { toWei } from '@utils' ; const MYCRYPTO_ADDRESS = '0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8' ; describe ( 'ERC20' , ( ) => { describe ( 'balanceOf' , ( ) => { it ( 'should generate the correct data for checking the balance' , ( ) => { const data = ERC20 . balanceOf . encodeInput ( { _owner : MYCRYPTO_ADDRESS } ) ; expect ( data ) . toBe ( '0x70a082310000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a8' ) ; } ) ; } ) ; describe ( 'transfer encoding input' , ( ) => { it ( 'should generate the correct data for a transfer' , ( ) => { const value = toWei ( '1' , 18 ) ; const data = ERC20 . transfer . encodeInput ( { _to : MYCRYPTO_ADDRESS , _value : value } ) ; expect ( data ) . toBe ( '0xa9059cbb0000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a80000000000000000000000000000000000000000000000000de0b6b3a7640000' ) ; } ) ; } ) ; describe ( 'transfer decoding input' , ( ) => { it ( 'should return the correct transaction given some data' , ( ) => { const tx = ERC20 . transfer . decodeInput ( '0xa9059cbb0000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a800000000000000000000000000000000000000000000000000038d7ea4c68000' ) ; expect ( tx . _to ) . toBe ( MYCRYPTO_ADDRESS ) ; expect ( tx . _value . toString ( ) ) . toBe ( toWei ( '0.001' , 18 ) . toString ( ) ) ; } ) ; } ) ; } ) ;