func TestUpdateECTransaction(t *testing.T) { state.SetFactoshisPerEC(1) add1, err := primitives.HexToHash("0000000000000000000000000000000000000000000000000000000000000001") if err != nil { t.Error(err) return } add1bs := primitives.StringToByteSlice32("0000000000000000000000000000000000000000000000000000000000000001") if state.GetECBalance(add1.Fixed()) != 0 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) return } var tx interfaces.IECBlockEntry tx = new(entryCreditBlock.ServerIndexNumber) err = state.UpdateECTransaction(tx) if err != nil { t.Error(err) return } if state.GetECBalance(add1.Fixed()) != 0 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) } tx = new(entryCreditBlock.MinuteNumber) err = state.UpdateECTransaction(tx) if err != nil { t.Error(err) return } if state.GetECBalance(add1.Fixed()) != 0 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) return } //Proper processing cc := new(entryCreditBlock.CommitChain) cc.ECPubKey = add1bs cc.Credits = 100 tx = cc err = state.UpdateECTransaction(tx) if err != nil { t.Error(err) return } if state.GetECBalance(add1.Fixed()) != -100 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) return } ib := new(entryCreditBlock.IncreaseBalance) ib.ECPubKey = add1bs ib.NumEC = 100 tx = ib err = state.UpdateECTransaction(tx) if err != nil { t.Error(err) return } if state.GetECBalance(add1.Fixed()) != 0 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) return } ce := new(entryCreditBlock.CommitEntry) ce.ECPubKey = add1bs ce.Credits = 100 tx = ce err = state.UpdateECTransaction(tx) if err != nil { t.Error(err) return } if state.GetECBalance(add1.Fixed()) != -100 { t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed())) return } }
func DecodeTransactionToHashes(fullTransaction string) (eTxID string, ecTxID string) { //fmt.Printf("DecodeTransactionToHashes - %v\n", fullTransaction) b, err := hex.DecodeString(fullTransaction) if err != nil { return } cc := new(entryCreditBlock.CommitChain) rest, err := cc.UnmarshalBinaryData(b) if err != nil || len(rest) > 0 { //fmt.Printf("err - %v\n", err) ec := new(entryCreditBlock.CommitEntry) rest, err = ec.UnmarshalBinaryData(b) if err != nil || len(rest) > 0 { //fmt.Printf("err - %v\n", err) e := new(entryBlock.Entry) rest, err = e.UnmarshalBinaryData(b) if err != nil || len(rest) > 0 { //fmt.Printf("err - %v\n", err) return } else { //fmt.Println("e") eTxID = e.GetHash().String() } } else { //fmt.Println("ec") eTxID = ec.GetEntryHash().String() ecTxID = ec.GetHash().String() } } else { //fmt.Println("cc") eTxID = cc.GetEntryHash().String() ecTxID = cc.GetHash().String() } //fmt.Printf("eTxID - %v\n", eTxID) //fmt.Printf("ecTxID - %v\n", ecTxID) return }