diff --git a/Cargo.lock b/Cargo.lock index f603410f0..5795de427 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1271,7 +1271,7 @@ dependencies = [ [[package]] name = "parity-ui-precompiled" version = "1.4.0" -source = "git+https://github.com/ethcore/js-precompiled.git#a59b62ecec8773715d1db7e070bbbe5443eb7378" +source = "git+https://github.com/ethcore/js-precompiled.git#1bf7160f6c8f25353d790dbd0935560d3d395727" dependencies = [ "parity-dapps-glue 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/js/.babelrc b/js/.babelrc index 2298d98c0..8147da435 100644 --- a/js/.babelrc +++ b/js/.babelrc @@ -7,6 +7,7 @@ "transform-runtime", "transform-decorators-legacy", "transform-class-properties", + "transform-object-rest-spread", "lodash" ], "retainLines": true, diff --git a/js/package.json b/js/package.json index 62bf37b49..4be14d531 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "parity.js", - "version": "0.2.99", + "version": "0.2.102", "main": "release/index.js", "jsnext:main": "src/index.js", "author": "Parity Team ", @@ -48,25 +48,26 @@ }, "devDependencies": { "babel-cli": "6.18.0", - "babel-core": "6.18.2", + "babel-core": "6.20.0", "babel-eslint": "7.1.1", "babel-loader": "6.2.8", "babel-plugin-lodash": "3.2.10", - "babel-plugin-transform-class-properties": "6.19.0", + "babel-plugin-transform-class-properties": "6.18.0", "babel-plugin-transform-decorators-legacy": "1.3.4", + "babel-plugin-transform-object-rest-spread": "6.20.2", "babel-plugin-transform-react-remove-prop-types": "0.2.11", "babel-plugin-transform-runtime": "6.15.0", - "babel-polyfill": "6.16.0", + "babel-polyfill": "6.20.0", "babel-preset-es2015": "6.18.0", - "babel-preset-es2015-rollup": "1.2.0", "babel-preset-es2016": "6.16.0", "babel-preset-es2017": "6.16.0", "babel-preset-react": "6.16.0", "babel-preset-stage-0": "6.16.0", "babel-register": "6.18.0", - "babel-runtime": "6.18.0", + "babel-runtime": "6.20.0", "chai": "3.5.0", "chai-enzyme": "0.6.1", + "circular-dependency-plugin": "2.0.0", "copy-webpack-plugin": "4.0.1", "core-js": "2.4.1", "coveralls": "2.11.15", diff --git a/js/scripts/test.js b/js/scripts/test.js index 318fd7c84..78f2f99bd 100644 --- a/js/scripts/test.js +++ b/js/scripts/test.js @@ -1 +1 @@ -// test script 4 +// test script 6 diff --git a/js/src/api/contract/contract.js b/js/src/api/contract/contract.js index ed922a02c..1185199e1 100644 --- a/js/src/api/contract/contract.js +++ b/js/src/api/contract/contract.js @@ -262,12 +262,11 @@ export default class Contract { } const options = this._getFilterOptions(event, _options); + options.fromBlock = 0; + options.toBlock = 'latest'; + return this._api.eth - .getLogs({ - fromBlock: 0, - toBlock: 'latest', - ...options - }) + .getLogs(options) .then((logs) => this.parseEventLogs(logs)); } diff --git a/js/src/modals/ExecuteContract/DetailsStep/detailsStep.js b/js/src/modals/ExecuteContract/DetailsStep/detailsStep.js index 082fac6a7..b4488729a 100644 --- a/js/src/modals/ExecuteContract/DetailsStep/detailsStep.js +++ b/js/src/modals/ExecuteContract/DetailsStep/detailsStep.js @@ -17,7 +17,8 @@ import React, { Component, PropTypes } from 'react'; import { MenuItem } from 'material-ui'; -import { AddressSelect, Form, Input, InputAddressSelect, Select } from '~/ui'; +import { AddressSelect, Form, Input, Select, TypedInput } from '~/ui'; +import { parseAbiType } from '~/util/abi'; import styles from '../executeContract.css'; @@ -74,7 +75,7 @@ export default class DetailsStep extends Component { const functions = contract.functions .filter((func) => !func.constant) - .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => (a.name || '').localeCompare(b.name || '')) .map((func) => { const params = (func.abi.inputs || []) .map((input, index) => { @@ -125,56 +126,22 @@ export default class DetailsStep extends Component { } return (func.abi.inputs || []).map((input, index) => { - const onChange = (event, value) => onValueChange(event, index, value); - const onSelect = (event, _index, value) => onValueChange(event, index, value); - const onSubmit = (value) => onValueChange(null, index, value); + const onChange = (value) => onValueChange(null, index, value); const label = `${input.name}: ${input.type}`; - let inputbox; - - switch (input.type) { - case 'address': - inputbox = ( - - ); - break; - - case 'bool': - const boolitems = ['false', 'true'].map((bool) => { - return ( - { bool } - ); - }); - inputbox = ( - - ); - break; - - default: - inputbox = ( - - ); - } return ( -
- { inputbox } +
+
); }); diff --git a/js/src/modals/ExecuteContract/executeContract.js b/js/src/modals/ExecuteContract/executeContract.js index c3b64d738..4a708d17a 100644 --- a/js/src/modals/ExecuteContract/executeContract.js +++ b/js/src/modals/ExecuteContract/executeContract.js @@ -23,6 +23,7 @@ import ContentClear from 'material-ui/svg-icons/content/clear'; import { BusyStep, CompletedStep, Button, IdentityIcon, Modal, TxHash } from '~/ui'; import { MAX_GAS_ESTIMATION } from '../../util/constants'; import { validateAddress, validateUint } from '../../util/validation'; +import { parseAbiType } from '~/util/abi'; import DetailsStep from './DetailsStep'; @@ -66,7 +67,7 @@ class ExecuteContract extends Component { const { contract } = this.props; const functions = contract.functions .filter((func) => !func.constant) - .sort((a, b) => a.name.localeCompare(b.name)); + .sort((a, b) => (a.name || '').localeCompare(b.name || '')); this.onFuncChange(null, functions[0]); } @@ -111,7 +112,7 @@ class ExecuteContract extends Component {