39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { toWei } from 'libs/units';
|
|
import ERC20 from 'libs/erc20';
|
|
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', () => {
|
|
// Test data generated by sending 1 GNT to the MyC address
|
|
|
|
const value = toWei('1', 18);
|
|
const data = ERC20.transfer.encodeInput({ _to: MYCRYPTO_ADDRESS, _value: value });
|
|
expect(data).toBe(
|
|
'0xa9059cbb0000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a80000000000000000000000000000000000000000000000000de0b6b3a7640000'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('transfer decoding input', () => {
|
|
// Test data generated by sending 0.001 GNT to the MyC address
|
|
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());
|
|
});
|
|
});
|
|
});
|