|
|
|
@ -6,7 +6,6 @@ import ( |
|
|
|
|
"encoding/hex" |
|
|
|
|
"crypto/sha256" |
|
|
|
|
_ "bytes" |
|
|
|
|
"strconv" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
@ -35,14 +34,17 @@ var Period3Reward *big.Int = new(big.Int) |
|
|
|
|
var Period4Reward *big.Int = new(big.Int) |
|
|
|
|
|
|
|
|
|
type Transaction struct { |
|
|
|
|
RlpSerializer |
|
|
|
|
|
|
|
|
|
sender string |
|
|
|
|
recipient uint32 |
|
|
|
|
value uint32 |
|
|
|
|
fee uint32 |
|
|
|
|
data []string |
|
|
|
|
memory []int |
|
|
|
|
signature string |
|
|
|
|
|
|
|
|
|
// To be removed
|
|
|
|
|
signature string |
|
|
|
|
addr string |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -61,18 +63,14 @@ func NewTransaction(to uint32, value uint32, data []string) *Transaction { |
|
|
|
|
tx.data[i] = instr |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
b:= []byte(tx.Serialize()) |
|
|
|
|
b:= []byte(tx.MarshalRlp()) |
|
|
|
|
hash := sha256.Sum256(b) |
|
|
|
|
tx.addr = hex.EncodeToString(hash[0:19]) |
|
|
|
|
|
|
|
|
|
return &tx |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Uitoa(i uint32) string { |
|
|
|
|
return strconv.FormatUint(uint64(i), 10) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (tx *Transaction) Serialize() string { |
|
|
|
|
func (tx *Transaction) MarshalRlp() []byte { |
|
|
|
|
// Prepare the transaction for serialization
|
|
|
|
|
preEnc := []interface{}{ |
|
|
|
|
"0", // TODO last Tx
|
|
|
|
@ -84,7 +82,7 @@ func (tx *Transaction) Serialize() string { |
|
|
|
|
tx.data, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return RlpEncode(preEnc) |
|
|
|
|
return []byte(RlpEncode(preEnc)) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func InitFees() { |
|
|
|
|