Commit 592cddcf authored by yann300's avatar yann300

coding standard

parent b4d7d8c4
node_modules
npm-debug.log
...@@ -20,12 +20,13 @@ ...@@ -20,12 +20,13 @@
}, },
"devDependencies": { "devDependencies": {
"babel-preset-react": "^6.5.0", "babel-preset-react": "^6.5.0",
"babelify": "^7.2.0" "babelify": "^7.2.0",
"standard": "^7.0.1"
}, },
"scripts": { "scripts": {
"install": "npm install --save react react-dom; npm install -g browserify; npm install --save babelify babel-preset-react; npm install web3",
"start_node": "eth --rpccorsdomain \"*\" -j -v 0", "start_node": "eth --rpccorsdomain \"*\" -j -v 0",
"build": "mkdir -p build; browserify -t [ babelify --presets [ react ] ] src/index.js -o build/app.js" "build": "mkdir -p build; browserify -t [ babelify --presets [ react ] ] src/index.js -o build/app.js",
"test" : "standard"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
...@@ -36,5 +37,8 @@ ...@@ -36,5 +37,8 @@
"bugs": { "bugs": {
"url": "https://github.com/ethereum/remix/issues" "url": "https://github.com/ethereum/remix/issues"
}, },
"homepage": "https://github.com/ethereum/remix#readme" "homepage": "https://github.com/ethereum/remix#readme",
"standard": {
"global": ["web3"]
}
} }
This diff is collapsed.
var React = require('react'); var React = require('react')
var style = require('./basicStyles') var style = require('./basicStyles')
module.exports = React.createClass({ module.exports = React.createClass({
getDefaultProps: function () {
getDefaultProps: function()
{
return { return {
data: null, data: null,
name: null, name: null,
renderRow: null renderRow: null
}; }
}, },
render: function() render: function () {
{
return ( return (
<div style={style.panel.container}> <div style={style.panel.container}>
<div style={style.panel.title} >{this.props.name}</div> <div style={style.panel.title}>
<div style={style.panel.tableContainer} > {this.props.name}
</div>
<div style={style.panel.tableContainer}>
<table style={style.panel.table}> <table style={style.panel.table}>
<tbody> <tbody>
{this.renderItems()} {this.renderItems()}
...@@ -25,21 +24,26 @@ module.exports = React.createClass({ ...@@ -25,21 +24,26 @@ module.exports = React.createClass({
</table> </table>
</div> </div>
</div> </div>
); )
}, },
renderItems: function() renderItems: function () {
{ if (!this.props.data) {
if (!this.props.data)
return [] return []
if (!this.props.renderRow) }
{ if (!this.props.renderRow) {
var ret = [] var ret = []
for (var key in this.props.data) for (var key in this.props.data) {
ret.push(<tr key={key} ><td>{this.props.data[key]}</td></tr>) ret.push(
return ret <tr key={key}>
<td>
{this.props.data[key]}
</td>
</tr>)
} }
else return ret
} else {
return this.props.renderRow(this.props.data) return this.props.renderRow(this.props.data)
} }
}
}) })
module.exports = { module.exports = {
wrapper: wrapper: {
{ 'fontFamily': 'arial,sans-serif'
'fontFamily': "arial,sans-serif"
}, },
container: container: {
{
'margin': '10px', 'margin': '10px',
'padding': '5px' 'padding': '5px'
}, },
address: address: {
{
'fontStyle': 'italic' 'fontStyle': 'italic'
}, },
instructionsList: instructionsList: {
{ 'width': '320px'
'width': "320px"
}, },
transactionInfo: transactionInfo: {
{
'marginTop': '5px' 'marginTop': '5px'
}, },
panel: panel: {
{ container: {
container:
{
'border': '1px solid', 'border': '1px solid',
'width': '600px' 'width': '600px'
}, },
tableContainer: tableContainer: {
{
'height': '150px', 'height': '150px',
'overflowY': 'auto' 'overflowY': 'auto'
}, },
table: table: {
{
'padding': '5px' 'padding': '5px'
}, },
title: title: {
{
'padding': '5px', 'padding': '5px',
'fontStyle': 'italic' 'fontStyle': 'italic'
} }
}, },
hidden: hidden: {
{
'display': 'none' 'display': 'none'
}, },
display: display: {
{
'display': 'block' 'display': 'block'
}, },
sticker: sticker: {
{
'verticalAlign': 'top', 'verticalAlign': 'top',
'margin': '5px' 'margin': '5px'
}, },
inline: inline: {
{
'display': 'inline-block' 'display': 'inline-block'
} }
} }
var opcodes = require('./opcodes') var opcodes = require('./opcodes')
module.exports = { module.exports = {
nameOpCodes: function (raw) {
nameOpCodes: function (raw)
{
var pushData = '' var pushData = ''
var codeMap = {} var codeMap = {}
var code = [] var code = []
for (var i = 0; i < raw.length; i++) for (var i = 0; i < raw.length; i++) {
{
var pc = i var pc = i
var curOpCode = opcodes(raw[pc], false).name var curOpCode = opcodes(raw[pc], false).name
codeMap[i] = code.length codeMap[i] = code.length
// no destinations into the middle of PUSH // no destinations into the middle of PUSH
if (curOpCode.slice(0, 4) === 'PUSH') if (curOpCode.slice(0, 4) === 'PUSH') {
{
var jumpNum = raw[pc] - 0x5f var jumpNum = raw[pc] - 0x5f
pushData = raw.slice(pc + 1, pc + jumpNum + 1) pushData = raw.slice(pc + 1, pc + jumpNum + 1)
i += jumpNum i += jumpNum
......
var React = require('react'); var React = require('react')
var TxBrowser = require('./txBrowser'); var TxBrowser = require('./txBrowser')
var VmTraceManager = require('./vmTraceManager'); var VmTraceManager = require('./vmTraceManager')
var VmTraceBrowser = require('./vmTraceBrowser'); var VmTraceBrowser = require('./vmTraceBrowser')
var style = require('./basicStyles') var style = require('./basicStyles')
module.exports = React.createClass({ module.exports = React.createClass({
getInitialState: function() { getInitialState: function () {
return {vmTrace: null, state: "", currentStep: -1} return {vmTrace: null, state: '', currentStep: -1}
}, },
render: function() { render: function () {
return ( return (
<div style={style.wrapper} > <div style={style.wrapper}>
<h1 style={style.container} >Eth Debugger</h1> <h1 style={style.container}>Eth Debugger</h1>
<TxBrowser onNewTxRequested={this.retrieveVmTrace} /> <TxBrowser onNewTxRequested={this.retrieveVmTrace} />
<div style={style.container} >{this.state.state}</div> <div style={style.container}>
{this.state.state}
</div>
<VmTraceBrowser vmTrace={this.state.vmTrace} /> <VmTraceBrowser vmTrace={this.state.vmTrace} />
</div> </div>
); )
}, },
retrieveVmTrace: function(blockNumber, txNumber) retrieveVmTrace: function (blockNumber, txNumber) {
{ this.setState({state: 'loading...'})
this.setState({state: "loading..."})
var deb = this var deb = this
VmTraceManager.retrieveVmTrace(blockNumber, txNumber, function(error, result) VmTraceManager.retrieveVmTrace(blockNumber, txNumber, function (error, result) {
{ if (error) {
deb.setState({vmTrace: result, state: ""}); console.log(error)
} else {
deb.setState({vmTrace: result, state: ''})
}
}) })
} }
}); })
var ReactDOM = require('react-dom'); var ReactDOM = require('react-dom')
var React = require('react'); var React = require('react')
var Web3 = require('web3'); var Web3 = require('web3')
var Web3Admin = require('./web3Admin') var Web3Admin = require('./web3Admin')
web3 = new Web3(); var web3 = new Web3()
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545')); web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'))
Web3Admin.extend(web3); Web3Admin.extend(web3)
var Debugger = require('./debugger'); var Debugger = require('./debugger')
ReactDOM.render( ReactDOM.render(
<Debugger/>, <Debugger />,
document.getElementById('app') document.getElementById('app')
); )
var React = require('react'); var React = require('react')
var style = require('./sliderStyles') var style = require('./sliderStyles')
module.exports = React.createClass({ module.exports = React.createClass({
propTypes: { propTypes: {
onChange: React.PropTypes.func.isRequired, onChange: React.PropTypes.func.isRequired
}, },
getDefaultProps: function () { getDefaultProps: function () {
return { return {
min: 0, min: 0,
max: 500 max: 500
}; }
}, },
render: function () { render: function () {
return ( return (
<div> <div>
<input ref="rule" style={style.rule} type="range" min={this.props.min} max={this.props.max} onMouseUp={this.onMouseUp} /> <input
ref='rule'
style={style.rule}
type='range'
min={this.props.min}
max={this.props.max}
onMouseUp={this.onMouseUp} />
</div> </div>
); )
}, },
onMouseUp: function (event) { onMouseUp: function (event) {
...@@ -28,9 +33,10 @@ module.exports = React.createClass({ ...@@ -28,9 +33,10 @@ module.exports = React.createClass({
setValue: function (value) { setValue: function (value) {
var diff = value - this.refs.rule.value var diff = value - this.refs.rule.value
if (diff > 0) if (diff > 0) {
this.refs.rule.stepUp(diff) this.refs.rule.stepUp(diff)
else } else {
this.refs.rule.stepDown(Math.abs(diff)) this.refs.rule.stepDown(Math.abs(diff))
} }
}
}) })
module.exports = { module.exports = {
rule: rule: {
{ 'width': '600px'
'width': '600px',
}, },
runner: runner: {
{
'position': 'absolute', 'position': 'absolute',
'width': '16px', 'width': '16px',
'height': '16px', 'height': '16px',
......
var React = require('react'); var React = require('react')
var style = require('./basicStyles')
module.exports = React.createClass({ module.exports = React.createClass({
getDefaultProps: function () {
getDefaultProps: function()
{
return { return {
data: null, data: null
}; }
}, },
render: function() render: function () {
{
return ( return (
<div> <div>
<table><tbody> <table>
<tbody>
{this.renderItems()} {this.renderItems()}
</tbody></table> </tbody>
</table>
</div> </div>
); )
}, },
renderItems: function() renderItems: function () {
{ if (this.props.data) {
if (this.props.data)
{
var ret = [] var ret = []
for (var key in this.props.data) for (var key in this.props.data) {
ret.push(<tr key={key}><td>{this.props.data[key]}</td></tr>) ret.push(
<tr key={key}>
<td>
{this.props.data[key]}
</td>
</tr>)
}
return ret return ret
} }
return null return null
}, }
}) })
var React = require('react'); var React = require('react')
var style = require('./basicStyles') var style = require('./basicStyles')
module.exports = React.createClass({ module.exports = React.createClass({
propTypes: { propTypes: {
onNewTxRequested: React.PropTypes.func.isRequired, onNewTxRequested: React.PropTypes.func.isRequired
}, },
getInitialState: function() { getInitialState: function () {
return {blockNumber: "1382256", txNumber: "1", from: "", to: "", hash: ""} return {blockNumber: '1382256', txNumber: '1', from: '', to: '', hash: ''}
}, },
submit: function() submit: function () {
{
var tx = web3.eth.getTransactionFromBlock(this.state.blockNumber, this.state.txNumber) var tx = web3.eth.getTransactionFromBlock(this.state.blockNumber, this.state.txNumber)
if (tx) if (tx) {
this.setState({from: tx.from, to: tx.to, hash: tx.hash}) this.setState({from: tx.from, to: tx.to, hash: tx.hash})
}
this.props.onNewTxRequested(this.state.blockNumber, parseInt(this.state.txNumber)) this.props.onNewTxRequested(this.state.blockNumber, parseInt(this.state.txNumber))
}, },
updateBlockN: function(ev) { updateBlockN: function (ev) {
this.state.blockNumber = ev.target.value; this.state.blockNumber = ev.target.value
}, },
updateTxN: function(ev) { updateTxN: function (ev) {
this.state.txNumber = ev.target.value; this.state.txNumber = ev.target.value
}, },
render: function() { render: function () {
return ( return (
<div style={style.container} > <div style={style.container}>
<input onChange={this.updateBlockN} type="text" placeholder= {"Block number or hash (default 1382256)" + this.state.blockNumber}></input> <input onChange={this.updateBlockN} type='text' placeholder={'Block number or hash (default 1382256)' + this.state.blockNumber}></input>
<input onChange={this.updateTxN} type="text" placeholder={"Transaction Number (default 1) " + this.state.txNumber}></input> <input onChange={this.updateTxN} type='text' placeholder={'Transaction Number (default 1) ' + this.state.txNumber}></input>
<button onClick={this.submit}>Get</button> <button onClick={this.submit}>
Get
</button>
<div style={style.transactionInfo}> <div style={style.transactionInfo}>
<div>Hash: {this.state.hash}</div> <div>
<div>From: {this.state.from}</div> Hash:
<div>To: {this.state.to}</div> {this.state.hash}
</div>
<div>
From:
{this.state.from}
</div>
<div>
To:
{this.state.to}
</div>
</div> </div>
</div> </div>
); )
} }
}) })
var React = require('react'); var React = require('react')
var AssemblyItemsBrowser = require('./assemblyItemsBrowser'); var AssemblyItemsBrowser = require('./assemblyItemsBrowser')
module.exports = React.createClass({ module.exports = React.createClass({
render: function () {
render: function() {
return ( return (
<div> <div>
<AssemblyItemsBrowser vmTrace={this.props.vmTrace} /> <AssemblyItemsBrowser vmTrace={this.props.vmTrace} />
</div> </div>
) )
}, }
}); })
var React = require('react'); var React = require('react')
module.exports = React.createClass({ module.exports = React.createClass({
propTypes: { propTypes: {
stepIntoBack: React.PropTypes.func.isRequired, stepIntoBack: React.PropTypes.func.isRequired,
stepIntoForward: React.PropTypes.func.isRequired, stepIntoForward: React.PropTypes.func.isRequired,
stepOverBack: React.PropTypes.func.isRequired, stepOverBack: React.PropTypes.func.isRequired,
stepOverForward: React.PropTypes.func.isRequired, stepOverForward: React.PropTypes.func.isRequired
}, },
render: function() { render: function () {
return ( return (
<div> <div>
<button onClick={this.props.stepIntoBack} disabled={this.checkButtonState(-1)} >Step Into Back</button> <button onClick={this.props.stepIntoBack} disabled={this.checkButtonState(-1)}>
<button onClick={this.props.stepOverBack} disabled={this.checkButtonState(-1)} >Step Over Back</button> Step Into Back
<button onClick={this.props.stepOverForward} disabled={this.checkButtonState(1)} >Step Over Forward</button> </button>
<button onClick={this.props.stepIntoForward} disabled={this.checkButtonState(1)} >Step Into Forward</button> <button onClick={this.props.stepOverBack} disabled={this.checkButtonState(-1)}>
Step Over Back
</button>
<button onClick={this.props.stepOverForward} disabled={this.checkButtonState(1)}>
Step Over Forward
</button>
<button onClick={this.props.stepIntoForward} disabled={this.checkButtonState(1)}>
Step Into Forward
</button>
</div> </div>
); )
}, },
checkButtonState: function(incr) checkButtonState: function (incr) {
{ if (incr === -1) {
if (incr === -1) return this.props.step === 0 ? 'disabled' : ''
return this.props.step === 0 ? "disabled" : "" } else if (incr === 1) {
else if (incr === 1) return this.props.step >= this.props.vmTraceLength - 1 ? 'disabled' : ''
return this.props.step >= this.props.vmTraceLength - 1 ? "disabled" : "" }
}, }
}) })
module.exports = { module.exports = {
retrieveVmTrace: function(blockNumber, txNumber, callBack) { retrieveVmTrace: function (blockNumber, txNumber, callBack) {
web3.debug.trace(blockNumber, parseInt(txNumber), function(error, result) web3.debug.trace(blockNumber, parseInt(txNumber), function (error, result) {
{
callBack(error, result) callBack(error, result)
}); })
} }
} }
module.exports = { module.exports = {
extend: function(web3) { extend: function (web3) {
// ADMIN // ADMIN
web3._extend({ web3._extend({
property: 'admin', property: 'admin',
methods: methods: [
[
new web3._extend.Method({ new web3._extend.Method({
name: 'addPeer', name: 'addPeer',
call: 'admin_addPeer', call: 'admin_addPeer',
...@@ -18,14 +16,14 @@ module.exports = { ...@@ -18,14 +16,14 @@ module.exports = {
call: 'admin_exportChain', call: 'admin_exportChain',
params: 1, params: 1,
inputFormatter: [null], inputFormatter: [null],
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}), }),
new web3._extend.Method({ new web3._extend.Method({
name: 'importChain', name: 'importChain',
call: 'admin_importChain', call: 'admin_importChain',
params: 1, params: 1,
inputFormatter: [null], inputFormatter: [null],
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}), }),
new web3._extend.Method({ new web3._extend.Method({
name: 'verbosity', name: 'verbosity',
...@@ -45,7 +43,7 @@ module.exports = { ...@@ -45,7 +43,7 @@ module.exports = {
name: 'startRPC', name: 'startRPC',
call: 'admin_startRPC', call: 'admin_startRPC',
params: 4, params: 4,
inputFormatter: [null,web3._extend.utils.formatInputInteger,null,null], inputFormatter: [null, web3._extend.utils.formatInputInteger, null, null],
outputFormatter: web3._extend.formatters.formatOutputBool outputFormatter: web3._extend.formatters.formatOutputBool
}), }),
new web3._extend.Method({ new web3._extend.Method({
...@@ -60,10 +58,9 @@ module.exports = { ...@@ -60,10 +58,9 @@ module.exports = {
call: 'admin_eth_vmTrace', call: 'admin_eth_vmTrace',
inputFormatter: [null, null, null], inputFormatter: [null, null, null],
params: 3 params: 3
}), })
], ],
properties: properties: [
[
new web3._extend.Property({ new web3._extend.Property({
name: 'nodeInfo', name: 'nodeInfo',
getter: 'admin_nodeInfo', getter: 'admin_nodeInfo',
...@@ -72,7 +69,7 @@ module.exports = { ...@@ -72,7 +69,7 @@ module.exports = {
new web3._extend.Property({ new web3._extend.Property({
name: 'peers', name: 'peers',
getter: 'admin_peers', getter: 'admin_peers',
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}), }),
new web3._extend.Property({ new web3._extend.Property({
name: 'datadir', name: 'datadir',
...@@ -82,20 +79,18 @@ module.exports = { ...@@ -82,20 +79,18 @@ module.exports = {
new web3._extend.Property({ new web3._extend.Property({
name: 'chainSyncStatus', name: 'chainSyncStatus',
getter: 'admin_chainSyncStatus', getter: 'admin_chainSyncStatus',
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}) })
] ]
}); })
// DEBUG // DEBUG
web3._extend({ web3._extend({
property: 'debug', property: 'debug',
methods: methods: [
[
new web3._extend.Method({ new web3._extend.Method({
name: 'trace', name: 'trace',
call: 'debug_trace', call: 'debug_trace',
params: 1,
inputFormatter: [null, null], inputFormatter: [null, null],
params: 2 params: 2
}), }),
...@@ -125,7 +120,7 @@ module.exports = { ...@@ -125,7 +120,7 @@ module.exports = {
call: 'debug_processBlock', call: 'debug_processBlock',
params: 1, params: 1,
inputFormatter: [web3._extend.formatters.formatInputInt], inputFormatter: [web3._extend.formatters.formatInputInt],
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}), }),
new web3._extend.Method({ new web3._extend.Method({
name: 'seedHash', name: 'seedHash',
...@@ -133,25 +128,22 @@ module.exports = { ...@@ -133,25 +128,22 @@ module.exports = {
params: 1, params: 1,
inputFormatter: [web3._extend.formatters.formatInputInt], inputFormatter: [web3._extend.formatters.formatInputInt],
outputFormatter: web3._extend.formatters.formatOutputString outputFormatter: web3._extend.formatters.formatOutputString
}) , }),
new web3._extend.Method({ new web3._extend.Method({
name: 'dumpBlock', name: 'dumpBlock',
call: 'debug_dumpBlock', call: 'debug_dumpBlock',
params: 1, params: 1,
inputFormatter: [web3._extend.formatters.formatInputInt], inputFormatter: [web3._extend.formatters.formatInputInt],
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}) })
], ],
properties: properties: []
[ })
]
});
// MINER // MINER
web3._extend({ web3._extend({
property: 'miner', property: 'miner',
methods: methods: [
[
new web3._extend.Method({ new web3._extend.Method({
name: 'start', name: 'start',
call: 'miner_start', call: 'miner_start',
...@@ -202,21 +194,19 @@ module.exports = { ...@@ -202,21 +194,19 @@ module.exports = {
outputFormatter: web3._extend.formatters.formatOutputBool outputFormatter: web3._extend.formatters.formatOutputBool
}) })
], ],
properties: properties: [
[
new web3._extend.Property({ new web3._extend.Property({
name: 'hashrate', name: 'hashrate',
getter: 'miner_hashrate', getter: 'miner_hashrate',
outputFormatter: web3._extend.utils.toDecimal outputFormatter: web3._extend.utils.toDecimal
}) })
] ]
}); })
// NETWORK // NETWORK
web3._extend({ web3._extend({
property: 'network', property: 'network',
methods: methods: [
[
new web3._extend.Method({ new web3._extend.Method({
name: 'addPeer', name: 'addPeer',
call: 'net_addPeer', call: 'net_addPeer',
...@@ -232,8 +222,7 @@ module.exports = { ...@@ -232,8 +222,7 @@ module.exports = {
outputFormatter: web3._extend.formatters.formatOutputString outputFormatter: web3._extend.formatters.formatOutputString
}) })
], ],
properties: properties: [
[
new web3._extend.Property({ new web3._extend.Property({
name: 'listening', name: 'listening',
getter: 'net_listening', getter: 'net_listening',
...@@ -247,7 +236,7 @@ module.exports = { ...@@ -247,7 +236,7 @@ module.exports = {
new web3._extend.Property({ new web3._extend.Property({
name: 'peers', name: 'peers',
getter: 'net_peers', getter: 'net_peers',
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}), }),
new web3._extend.Property({ new web3._extend.Property({
name: 'version', name: 'version',
...@@ -255,23 +244,19 @@ module.exports = { ...@@ -255,23 +244,19 @@ module.exports = {
outputFormatter: web3._extend.formatters.formatOutputString outputFormatter: web3._extend.formatters.formatOutputString
}) })
] ]
}); })
// TX POOL // TX POOL
web3._extend({ web3._extend({
property: 'txpool', property: 'txpool',
methods: methods: [],
[ properties: [
],
properties:
[
new web3._extend.Property({ new web3._extend.Property({
name: 'status', name: 'status',
getter: 'txpool_status', getter: 'txpool_status',
outputFormatter: function(obj) { return obj; } outputFormatter: function (obj) { return obj }
}) })
] ]
}); })
} }
}; }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment