good morning!!!!

Skip to content
Snippets Groups Projects
Commit ebef4e10 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Ether

parent a42ebd9e
Branches
Tags
No related merge requests found
package main
import (
_"fmt"
)
type Contract struct {
active int
amount uint32 // ???
t uint32 // contract is always 1
amount uint64 // ???
state *Trie
}
func NewContract(amount uint32, root []byte) *Contract {
contract := &Contract{active: 1, amount: amount}
func NewContract(amount uint64, root []byte) *Contract {
contract := &Contract{t: 1, amount: amount}
contract.state = NewTrie(Db, string(root))
return contract
}
func (c *Contract) MarshalRlp() []byte {
// Prepare the transaction for serialization
preEnc := []interface{}{uint32(c.active), c.amount, c.state.root}
return Encode(preEnc)
func (c *Contract) MarshalRlp() []byte {
return Encode([]interface{}{c.t, c.amount, c.state.root})
}
func (c *Contract) UnmarshalRlp(data []byte) {
t, _ := Decode(data, 0)
if slice, ok := t.([]interface{}); ok {
if active, ok := slice[0].(uint8); ok {
c.active = int(active)
if t, ok := slice[0].(uint8); ok {
c.t = uint32(t)
}
if amount, ok := slice[1].(uint8); ok {
c.amount = uint32(amount)
c.amount = uint64(amount)
} else if amount, ok := slice[1].(uint16); ok {
c.amount = uint64(amount)
} else if amount, ok := slice[1].(uint32); ok {
c.amount = uint64(amount)
} else if amount, ok := slice[1].(uint64); ok {
c.amount = amount
}
if root, ok := slice[2].([]uint8); ok {
......@@ -38,3 +44,38 @@ func (c *Contract) UnmarshalRlp(data []byte) {
}
}
}
type Ether struct {
t uint32
amount uint64
nonce string
}
func NewEtherFromData(data []byte) *Ether {
ether := &Ether{}
ether.UnmarshalRlp(data)
return ether
}
func (e *Ether) MarshalRlp() []byte {
return Encode([]interface{}{e.t, e.amount, e.nonce})
}
func (e *Ether) UnmarshalRlp(data []byte) {
t, _ := Decode(data, 0)
if slice, ok := t.([]interface{}); ok {
if t, ok := slice[0].(uint8); ok {
e.t = uint32(t)
}
if amount, ok := slice[1].(uint8); ok {
e.amount = uint64(amount)
}
if nonce, ok := slice[2].([]uint8); ok {
e.nonce = string(nonce)
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment