MCPcopy Create free account
hub / github.com/DNAProject/DNA / GetContractState

Function GetContractState

http/base/rest/interfaces.go:363–388  ·  view source on GitHub ↗

get contract state

(cmd map[string]interface{})

Source from the content-addressed store, hash-verified

361
362//get contract state
363func GetContractState(cmd map[string]interface{}) map[string]interface{} {
364 resp := ResponsePack(berr.SUCCESS)
365 str, ok := cmd["Hash"].(string)
366 if !ok {
367 return ResponsePack(berr.INVALID_PARAMS)
368 }
369 address, err := bcomn.GetAddress(str)
370 if err != nil {
371 return ResponsePack(berr.INVALID_PARAMS)
372 }
373 contract, err := bactor.GetContractStateFromStore(address)
374 if err != nil {
375 return ResponsePack(berr.INTERNAL_ERROR)
376 }
377 if contract == nil {
378 return ResponsePack(berr.UNKNOWN_CONTRACT)
379 }
380 if raw, ok := cmd["Raw"].(string); ok && raw == "1" {
381 sink := common.NewZeroCopySink(nil)
382 contract.Serialization(sink)
383 resp["Result"] = common.ToHexString(sink.Bytes())
384 return resp
385 }
386 resp["Result"] = bcomn.TransPayloadToHex(contract)
387 return resp
388}
389
390//get storage from contract
391func GetStorage(cmd map[string]interface{}) map[string]interface{} {

Callers

nothing calls this directly

Calls 4

BytesMethod · 0.95
ResponsePackFunction · 0.85
SerializationMethod · 0.65
ToHexStringMethod · 0.45

Tested by

no test coverage detected