github.com/cheng762/platon-go@v1.8.17-0.20190529111256-7deff2d7be26/core/vm/ppos_precontracts_test.go (about) 1 package vm 2 3 import ( 4 "encoding/hex" 5 "encoding/json" 6 "fmt" 7 "github.com/PlatONnetwork/PlatON-Go/common" 8 "github.com/PlatONnetwork/PlatON-Go/core/types" 9 "github.com/PlatONnetwork/PlatON-Go/p2p/discover" 10 "math/big" 11 "testing" 12 ) 13 14 func TestExecute(t *testing.T) { 15 var command = map[string]interface{}{ 16 "recalled": recalled, 17 } 18 input, _ := hex.DecodeString("f8c28800000000000000f188726563616c6c6564b88230783166336138363732333438666636623738396534313637363261643533653639303633313338623865623464383738303130313635386632346232333639663161386530393439393232366234363764386263306334653033653164633930336466383537656562336336373733336432316236616165653238343065343239aa30786632313664366534633137303937613630656532623865356338383934316364396630373236336201") 19 _, err := execute(input, command) 20 if nil != err { 21 fmt.Println("execute fail", "err", err) 22 } 23 } 24 25 func TestDecodeResultStr(t *testing.T) { 26 ticket := types.Ticket{ 27 Owner: common.HexToAddress("0x0123456789012345678901234567890123456789"), 28 Deposit: big.NewInt(1), 29 CandidateId: discover.MustHexID("0x01234567890121345678901123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345"), 30 BlockNumber: big.NewInt(100), 31 Remaining: 1000, 32 } 33 data, _ := json.Marshal(ticket) 34 sdata := DecodeResultStr(string(data)) 35 json := ResultByte2Json(sdata) 36 fmt.Println("origin: ", string(data), "[]byte: ", sdata, "json: ", json) 37 } 38 39 func recalled(nodeId discover.NodeID, owner common.Address, deposit *big.Int) ([]byte, error) { 40 fmt.Println("nodeId:", nodeId, "owner:", owner, "deposit:", deposit) 41 return nil, nil 42 } 43 44 func ResultByte2Json(origin []byte) string { 45 resultByte := origin[64:] 46 return string(resultByte) 47 }