Fixed samplecoin
This commit is contained in:
		@@ -19,8 +19,7 @@ window.eth = {
 | 
			
		||||
 | 
			
		||||
	// Create transaction
 | 
			
		||||
	//
 | 
			
		||||
	// Creates a transaction with the current account
 | 
			
		||||
	// If no recipient is set, the Ethereum API will see it as a contract creation
 | 
			
		||||
	// Transact between two state objects
 | 
			
		||||
	transact: function(sec, recipient, value, gas, gasPrice, data, cb) {
 | 
			
		||||
		postData({call: "transact", args: [sec, recipient, value, gas, gasPrice, data]}, cb);
 | 
			
		||||
	},
 | 
			
		||||
@@ -202,7 +201,7 @@ String.prototype.unbin = function() {
 | 
			
		||||
String.prototype.hex2bin = function() {
 | 
			
		||||
    bytes = []
 | 
			
		||||
 | 
			
		||||
    for(var i=2; i< this.length-1; i+=2){
 | 
			
		||||
    for(var i=2; i< this.length-1; i+=2) {
 | 
			
		||||
        bytes.push(parseInt(this.substr(i, 2), 16));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ ApplicationWindow {
 | 
			
		||||
 | 
			
		||||
						var tx = eth.transact(data.args[0], data.args[1], data.args[2],data.args[3],data.args[4],data.args[5])
 | 
			
		||||
						postData(data._seed, tx)
 | 
			
		||||
 | 
			
		||||
						break
 | 
			
		||||
					case "create":
 | 
			
		||||
						postData(data._seed, null)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,13 +9,14 @@
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
var jefcoinAddr = "3dff537f51350239abc95c76a5864aa605259e7d"
 | 
			
		||||
var mAddr = ""
 | 
			
		||||
 | 
			
		||||
function createTransaction() {
 | 
			
		||||
	var addr = document.querySelector("#addr").value;
 | 
			
		||||
	var amount = document.querySelector("#amount").value;
 | 
			
		||||
 | 
			
		||||
	var data = "0x" + addr + "\n" + amount
 | 
			
		||||
	eth.transact("", jefcoinAddr, 0, "10000000", "250", data, function(tx) {
 | 
			
		||||
	var data = (("0x"+addr).pad(32) + amount.pad(32)).unbin()
 | 
			
		||||
	eth.transact(mAddr, jefcoinAddr, 0, "10000000", "250", data, function(tx) {
 | 
			
		||||
		debug("received tx hash:", tx)
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
@@ -23,13 +24,15 @@ function createTransaction() {
 | 
			
		||||
function init() {
 | 
			
		||||
	eth.set({width: 500})
 | 
			
		||||
 | 
			
		||||
	eth.getKey(function(key) {
 | 
			
		||||
		eth.getStorageAt(jefcoinAddr, key, function(storage) {
 | 
			
		||||
	eth.getKey(function(keyPair) {
 | 
			
		||||
		mAddr = keyPair.privateKey;
 | 
			
		||||
 | 
			
		||||
		eth.getStorageAt(jefcoinAddr, keyPair.address, function(storage) {
 | 
			
		||||
			document.querySelector("#current-amount").innerHTML = storage;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		eth.watch(jefcoinAddr, function(stateObject) {
 | 
			
		||||
			eth.getStorageAt(jefcoinAddr, key, function(storage) {
 | 
			
		||||
			eth.getStorageAt(jefcoinAddr, keyPair.address, function(storage) {
 | 
			
		||||
				document.querySelector("#current-amount").innerHTML = storage;
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
@@ -50,7 +53,6 @@ function init() {
 | 
			
		||||
		<div>Amount: <strong id="current-amount"></strong></div>
 | 
			
		||||
 | 
			
		||||
		<div id="transactions">
 | 
			
		||||
			<form role="form">
 | 
			
		||||
			<div class="form-group">
 | 
			
		||||
				<input id="addr" class="form-control" type="text" placeholder="Receiver address"></input><br>
 | 
			
		||||
				<input id="amount" class="form-control" type="text" placeholder="Amount"></input><br>
 | 
			
		||||
@@ -59,10 +61,10 @@ function init() {
 | 
			
		||||
			<button class="btn btn-default" onclick="createTransaction();">Send Tx</button>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
	<div id="debug" style="border: 1px solid block"></div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="debug" style="border: 1px solid black; min-height: 30px;"></div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package utils
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/ethereum/eth-go"
 | 
			
		||||
	"github.com/ethereum/eth-go/ethchain"
 | 
			
		||||
	"github.com/ethereum/eth-go/ethutil"
 | 
			
		||||
@@ -28,8 +29,13 @@ func (lib *PEthereum) GetBlock(hexHash string) *PBlock {
 | 
			
		||||
	return &PBlock{Number: int(block.BlockInfo().Number), Hash: ethutil.Hex(block.Hash())}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (lib *PEthereum) GetKey() string {
 | 
			
		||||
	return ethutil.Hex(ethutil.Config.Db.GetKeys()[0].Address())
 | 
			
		||||
func (lib *PEthereum) GetKey() *PKey {
 | 
			
		||||
	keyPair, err := ethchain.NewKeyPairFromSec(ethutil.Config.Db.GetKeys()[0].PrivateKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return NewPKey(keyPair)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (lib *PEthereum) GetStateObject(address string) *PStateObject {
 | 
			
		||||
@@ -59,7 +65,7 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, in
 | 
			
		||||
		hash = ethutil.FromHex(recipient)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	keyPair, err := ethchain.NewKeyPairFromSec([]byte(key))
 | 
			
		||||
	keyPair, err := ethchain.NewKeyPairFromSec([]byte(ethutil.FromHex(key)))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
@@ -81,15 +87,12 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, in
 | 
			
		||||
 | 
			
		||||
		tx = ethchain.NewContractCreationTx(value, gas, gasPrice, mainScript, initScript)
 | 
			
		||||
	} else {
 | 
			
		||||
		/*
 | 
			
		||||
			lines := strings.Split(dataStr, "\n")
 | 
			
		||||
			var data []byte
 | 
			
		||||
			for _, line := range lines {
 | 
			
		||||
				data = append(data, ethutil.BigToBytes(ethutil.Big(line), 256)...)
 | 
			
		||||
		// Just in case it was submitted as a 0x prefixed string
 | 
			
		||||
		if initStr[0:2] == "0x" {
 | 
			
		||||
			initStr = initStr[2:len(initStr)]
 | 
			
		||||
		}
 | 
			
		||||
		*/
 | 
			
		||||
 | 
			
		||||
		tx = ethchain.NewTransactionMessage(hash, value, gas, gasPrice, []byte(initStr))
 | 
			
		||||
		fmt.Println("DATA:", initStr)
 | 
			
		||||
		tx = ethchain.NewTransactionMessage(hash, value, gas, gasPrice, ethutil.FromHex(initStr))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	acc := lib.stateManager.GetAddrState(keyPair.Address())
 | 
			
		||||
 
 | 
			
		||||
@@ -35,8 +35,15 @@ func NewPTx(tx *ethchain.Transaction) *PTx {
 | 
			
		||||
 | 
			
		||||
type PKey struct {
 | 
			
		||||
	Address    string
 | 
			
		||||
	PrivateKey string
 | 
			
		||||
	PublicKey  string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewPKey(key *ethchain.KeyPair) *PKey {
 | 
			
		||||
	return &PKey{ethutil.Hex(key.Address()), ethutil.Hex(key.PrivateKey), ethutil.Hex(key.PublicKey)}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
type PKeyRing struct {
 | 
			
		||||
	Keys []interface{}
 | 
			
		||||
}
 | 
			
		||||
@@ -44,6 +51,7 @@ type PKeyRing struct {
 | 
			
		||||
func NewPKeyRing(keys []interface{}) *PKeyRing {
 | 
			
		||||
	return &PKeyRing{Keys: keys}
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
type PStateObject struct {
 | 
			
		||||
	object *ethchain.StateObject
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user