mirror of https://github.com/ethereum/go-ethereum
parent
84adf77bf3
commit
ddf17d93ac
@ -0,0 +1,34 @@ |
|||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"io/ioutil" |
||||||
|
"os" |
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/ethutil" |
||||||
|
"github.com/ethereum/go-ethereum/vm" |
||||||
|
) |
||||||
|
|
||||||
|
func main() { |
||||||
|
code, err := ioutil.ReadAll(os.Stdin) |
||||||
|
if err != nil { |
||||||
|
fmt.Println(err) |
||||||
|
os.Exit(1) |
||||||
|
} |
||||||
|
code = ethutil.Hex2Bytes(string(code[:len(code)-1])) |
||||||
|
fmt.Printf("%x\n", code) |
||||||
|
|
||||||
|
for pc := uint64(0); pc < uint64(len(code)); pc++ { |
||||||
|
op := vm.OpCode(code[pc]) |
||||||
|
fmt.Printf("%-5d %v", pc, op) |
||||||
|
|
||||||
|
switch op { |
||||||
|
case vm.PUSH1, vm.PUSH2, vm.PUSH3, vm.PUSH4, vm.PUSH5, vm.PUSH6, vm.PUSH7, vm.PUSH8, vm.PUSH9, vm.PUSH10, vm.PUSH11, vm.PUSH12, vm.PUSH13, vm.PUSH14, vm.PUSH15, vm.PUSH16, vm.PUSH17, vm.PUSH18, vm.PUSH19, vm.PUSH20, vm.PUSH21, vm.PUSH22, vm.PUSH23, vm.PUSH24, vm.PUSH25, vm.PUSH26, vm.PUSH27, vm.PUSH28, vm.PUSH29, vm.PUSH30, vm.PUSH31, vm.PUSH32: |
||||||
|
a := uint64(op) - uint64(vm.PUSH1) + 1 |
||||||
|
fmt.Printf(" => %x", code[pc+1:pc+1+a]) |
||||||
|
|
||||||
|
pc += a |
||||||
|
} |
||||||
|
fmt.Println() |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
<!doctype> |
||||||
|
<html> |
||||||
|
|
||||||
|
<head> |
||||||
|
<script src="../ext/bignumber.min.js"></script> |
||||||
|
<script src="../ext/ethereum.js/dist/ethereum.js"></script> |
||||||
|
<script type="text/javascript"> |
||||||
|
|
||||||
|
var web3 = require('web3'); |
||||||
|
web3.setProvider(new web3.providers.HttpSyncProvider('http://localhost:8080')); |
||||||
|
|
||||||
|
function watchBalance() { |
||||||
|
var coinbase = web3.eth.coinbase; |
||||||
|
var originalBalance = 0; |
||||||
|
|
||||||
|
var balance = web3.eth.balanceAt(coinbase); |
||||||
|
var originalBalance = web3.toDecimal(balance); |
||||||
|
document.getElementById('original').innerText = 'original balance: ' + originalBalance + ' watching...'; |
||||||
|
|
||||||
|
web3.eth.watch({altered: coinbase}).changed(function() { |
||||||
|
balance = web3.eth.balanceAt(coinbase) |
||||||
|
var currentBalance = web3.toDecimal(balance); |
||||||
|
document.getElementById("current").innerText = 'current: ' + currentBalance; |
||||||
|
document.getElementById("diff").innerText = 'diff: ' + (currentBalance - originalBalance); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
</script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<h1>coinbase balance</h1> |
||||||
|
<button type="button" onClick="watchBalance();">watch balance</button> |
||||||
|
<div></div> |
||||||
|
<div id="original"></div> |
||||||
|
<div id="current"></div> |
||||||
|
<div id="diff"></div> |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
|
||||||
|
|
Loading…
Reference in new issue