Use signature of functions instead of names (#3448)

* Use signature of functions instead of names #3411

* Fixes contract tests #3448
This commit is contained in:
Nicolas Gotchac
2016-11-15 15:58:33 +01:00
committed by Jaco Greeff
parent b5dedd8aeb
commit 20185e5aac
4 changed files with 16 additions and 4 deletions

View File

@@ -40,9 +40,12 @@ export default class Contract {
this._events.forEach((evt) => {
this._instance[evt.name] = evt;
this._instance[evt.signature] = evt;
});
this._functions.forEach((fn) => {
this._instance[fn.name] = fn;
this._instance[fn.signature] = fn;
});
this._sendSubscriptionChanges();

View File

@@ -20,6 +20,7 @@ import sinon from 'sinon';
import { TEST_HTTP_URL, mockHttp } from '../../../test/mockRpc';
import Abi from '../../abi';
import { sha3 } from '../util/sha3';
import Api from '../api';
import Contract from './contract';
@@ -113,7 +114,13 @@ describe('api/contract/Contract', () => {
]);
contract.at('6789');
expect(Object.keys(contract.instance)).to.deep.equal(['Drained', 'balanceOf', 'address']);
expect(Object.keys(contract.instance)).to.deep.equal([
'Drained',
/^(?:0x)(.+)$/.exec(sha3('Drained(uint256)'))[1],
'balanceOf',
/^(?:0x)(.+)$/.exec(sha3('balanceOf(address)'))[1].substr(0, 8),
'address'
]);
expect(contract.address).to.equal('6789');
});
});