From 6b989299e036af91162282a5f4dac10377171297 Mon Sep 17 00:00:00 2001 From: yjwxfq <112159687+yjwxfq@users.noreply.github.com> Date: Thu, 20 Oct 2022 22:49:47 +0800 Subject: [PATCH] Fix chaincode/abstore, add parameter judgment when the transaction makes payment. (#825) Signed-off-by: yjwxfq Signed-off-by: yjwxfq --- chaincode/abstore/go/abstore.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chaincode/abstore/go/abstore.go b/chaincode/abstore/go/abstore.go index 9b35a22f..8dd78d4f 100644 --- a/chaincode/abstore/go/abstore.go +++ b/chaincode/abstore/go/abstore.go @@ -50,6 +50,9 @@ func (t *ABstore) Init(ctx contractapi.TransactionContextInterface, A string, Av // Transaction makes payment of X units from A to B func (t *ABstore) Invoke(ctx contractapi.TransactionContextInterface, A, B string, X int) error { + if X < 0 { + return fmt.Errorf("X input is wrong, it should be greater than 0") + } var err error var Aval int var Bval int @@ -63,6 +66,9 @@ func (t *ABstore) Invoke(ctx contractapi.TransactionContextInterface, A, B strin return fmt.Errorf("Entity not found") } Aval, _ = strconv.Atoi(string(Avalbytes)) + if Aval < X { + return fmt.Errorf("The value of A is not enough to make the payment.") + } Bvalbytes, err := ctx.GetStub().GetState(B) if err != nil {