mirror of
https://github.com/status-im/MyCrypto.git
synced 2025-01-17 06:31:22 +00:00
bf4171dfbd
* Add a little arrow icon. * Replaced toEther function with toUnit to reduce the number of conversion functions wed need. Add tests for conversion functions. * First pass at a styled confirm transaction modal. * More data about data * Hook up generated transaction with modal * Fix modal position * Add from address. Restyle a bit. * Only show textareas and button if transaction has been generated. * Remove need for param. * Copy. * Use non-relative path. * Initial crack at transaction token support. * Fix flow type * Unit tests for contracts and erc20 * Convert contract class to ethereumjs-abi, caught a bug * Add decodeArgs for contracts, decodeTransfer for erc20 * Show token value in modal * Show value from transaction data in confirmation. * Show address of receiver, not token contract * Flow type * Only accept bigs * Unlog * Use ethereumjs-abis method ID function * Get transaction stuff out of state. Leave todo notes. * Intuit token from transaction to address. * Move generate transaction out of node and into libs/transaction. * timeout -> interval * Promise.reject -> throw * Get default currency from network. * Add more unit tests for decoding. Adopt the $ prefix for decoding calls. * Use signed transaction in confirmation modal.
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
import Big from 'bignumber.js';
|
|
import ERC20 from 'libs/erc20';
|
|
import abi from 'ethereumjs-abi';
|
|
const MEW_ADDRESS = '0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8';
|
|
|
|
describe('ERC20', () => {
|
|
describe('balanceOf', () => {
|
|
it('should generate the correct data for checking the balance', () => {
|
|
const data = ERC20.balanceOf(MEW_ADDRESS);
|
|
expect(data).toBe(
|
|
'0x70a082310000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a8'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('transfer', () => {
|
|
it('should generate the correct data for a transfer', () => {
|
|
// Test data generated by sending 1 GNT to the MEW address
|
|
const value = new Big('1').times(new Big(10).pow(18));
|
|
const data = ERC20.transfer(MEW_ADDRESS, value);
|
|
expect(data).toBe(
|
|
'0xa9059cbb0000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a80000000000000000000000000000000000000000000000000de0b6b3a7640000'
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('$transfer', () => {
|
|
// Test data generated by sending 0.001 GNT to the MEW address
|
|
it('should return the correct transaction given some data', () => {
|
|
const tx = ERC20.$transfer(
|
|
'0xa9059cbb0000000000000000000000007cb57b5a97eabe94205c07890be4c1ad31e486a800000000000000000000000000000000000000000000000000038d7ea4c68000'
|
|
);
|
|
|
|
expect(tx.to).toBe(MEW_ADDRESS);
|
|
expect(tx.value).toBe(
|
|
new Big('0.001').times(new Big(10).pow(18)).toString()
|
|
);
|
|
});
|
|
});
|
|
});
|