forked from cerc-io/plugeth
Merge branch 'develop' into feature/rpc
This commit is contained in:
commit
87a5e94525
@ -350,7 +350,7 @@ func (sm *StateManager) notifyChanges() {
|
|||||||
|
|
||||||
for stateObjectAddr, mappedObjects := range sm.manifest.storageChanges {
|
for stateObjectAddr, mappedObjects := range sm.manifest.storageChanges {
|
||||||
for addr, value := range mappedObjects {
|
for addr, value := range mappedObjects {
|
||||||
sm.Ethereum.Reactor().Post("storage:"+stateObjectAddr+":"+addr, value.String())
|
sm.Ethereum.Reactor().Post("storage:"+stateObjectAddr+":"+addr, &StorageState{[]byte(stateObjectAddr), []byte(addr), value})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -186,3 +186,9 @@ type CachedStateObject struct {
|
|||||||
Nonce uint64
|
Nonce uint64
|
||||||
Object *StateObject
|
Object *StateObject
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StorageState struct {
|
||||||
|
StateAddress []byte
|
||||||
|
Address []byte
|
||||||
|
Value *big.Int
|
||||||
|
}
|
||||||
|
@ -54,6 +54,27 @@ func (lib *PEthereum) GetStateObject(address string) *PStateObject {
|
|||||||
return NewPStateObject(nil)
|
return NewPStateObject(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (lib *PEthereum) GetStorage(address, storageAddress string) string {
|
||||||
|
return lib.GetStateObject(address).GetStorage(storageAddress)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lib *PEthereum) GetTxCount(address string) int {
|
||||||
|
return lib.GetStateObject(address).Nonce()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lib *PEthereum) IsContract(address string) bool {
|
||||||
|
return lib.GetStateObject(address).IsContract()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lib *PEthereum) SecretToAddress(key string) string {
|
||||||
|
pair, err := ethchain.NewKeyPairFromSec(ethutil.FromHex(key))
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return ethutil.Hex(pair.Address())
|
||||||
|
}
|
||||||
|
|
||||||
func (lib *PEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr string) (*PReceipt, error) {
|
func (lib *PEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr string) (*PReceipt, error) {
|
||||||
return lib.createTx(key, recipient, valueStr, gasStr, gasPriceStr, dataStr, "")
|
return lib.createTx(key, recipient, valueStr, gasStr, gasPriceStr, dataStr, "")
|
||||||
}
|
}
|
||||||
|
@ -59,16 +59,6 @@ func NewPReciept(contractCreation bool, creationAddress, hash, address []byte) *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
type PKeyRing struct {
|
|
||||||
Keys []interface{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPKeyRing(keys []interface{}) *PKeyRing {
|
|
||||||
return &PKeyRing{Keys: keys}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
type PStateObject struct {
|
type PStateObject struct {
|
||||||
object *ethchain.StateObject
|
object *ethchain.StateObject
|
||||||
}
|
}
|
||||||
@ -105,3 +95,29 @@ func (c *PStateObject) Address() string {
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *PStateObject) Nonce() int {
|
||||||
|
if c.object != nil {
|
||||||
|
return int(c.object.Nonce)
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *PStateObject) IsContract() bool {
|
||||||
|
if c.object != nil {
|
||||||
|
return len(c.object.Script()) > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
type PStorageState struct {
|
||||||
|
StateAddress string
|
||||||
|
Address string
|
||||||
|
Value string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPStorageState(storageObject *ethchain.StorageState) *PStorageState {
|
||||||
|
return &PStorageState{ethutil.Hex(storageObject.StateAddress), ethutil.Hex(storageObject.Address), storageObject.Value.String()}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user