mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
2994eb4e63
94e0e5a Merge branch 'cpp' into cpp2 8613382 moved comment df17c33 event example c8ee08c contract.js simplified 842b8cf event.js e1c0862 Fix for API. 61e8ae2 events init 2544d2c tests for abi.filters ea7c2fc abi function type 63d9c07 fixed incoming messages 1345a8c log error on console, if api returns an error 83fad0f removed fromFixed, toFixed && offset from tests c2cb2be removed web3.eth.account, fixed #37 09f6335 fixed #23 42a25f2 evaluating solidity method input params git-subtree-dir: libjsqrc/ethereumjs git-subtree-split: 94e0e5ab7d8ec9adcd03fedc3abe5cf6444a5123
202 lines
4.7 KiB
JavaScript
202 lines
4.7 KiB
JavaScript
var assert = require('assert');
|
|
var contract = require('../lib/contract.js');
|
|
|
|
describe('contract', function() {
|
|
it('should create simple contract with one method from abi with explicit type name', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test(uint256)",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('function', typeof con.test);
|
|
assert.equal('function', typeof con.test['uint256']);
|
|
});
|
|
|
|
it('should create simple contract with one method from abi with implicit type name', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('function', typeof con.test);
|
|
assert.equal('function', typeof con.test['uint256']);
|
|
});
|
|
|
|
it('should create contract with multiple methods', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
}, {
|
|
"name": "test2",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('function', typeof con.test);
|
|
assert.equal('function', typeof con.test['uint256']);
|
|
assert.equal('function', typeof con.test2);
|
|
assert.equal('function', typeof con.test2['uint256']);
|
|
});
|
|
|
|
it('should create contract with overloaded methods', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
}, {
|
|
"name": "test",
|
|
"type": "function",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('function', typeof con.test);
|
|
assert.equal('function', typeof con.test['uint256']);
|
|
assert.equal('function', typeof con.test['string']);
|
|
});
|
|
|
|
it('should create contract with no methods', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test(uint256)",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('undefined', typeof con.test);
|
|
|
|
});
|
|
|
|
it('should create contract with one event', function () {
|
|
|
|
// given
|
|
var description = [{
|
|
"name": "test",
|
|
"type": "event",
|
|
"inputs": [{
|
|
"name": "a",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "d",
|
|
"type": "uint256"
|
|
}
|
|
]
|
|
}];
|
|
|
|
|
|
// when
|
|
var con = contract(null, description);
|
|
|
|
// then
|
|
assert.equal('function', typeof con.test);
|
|
assert.equal('function', typeof con.test['uint256']);
|
|
|
|
});
|
|
|
|
});
|
|
|