public override async Task <Response> Invoke(IChaincodeStub stub)
        {
            var function = stub.GetFunctionAndParameters().Function;

            _logger.LogInformation($"========== START: {function} ==========");
            var result = await base.Invoke(stub);

            _logger.LogInformation($"========== END: {function} ==========");

            return(result);
        }
        public virtual async Task <Response> Invoke(IChaincodeStub stub)
        {
            var functionParameterInformation = stub.GetFunctionAndParameters();

            if (!ContainsKey(functionParameterInformation.Function))
            {
                return(Shim.Error(
                           $"Chaincode invoked with unknown method name: {functionParameterInformation.Function}"));
            }

            try
            {
                return(Shim.Success(
                           await this[functionParameterInformation.Function](stub, functionParameterInformation.Parameters)
                           ));
            }
            catch (Exception ex)
            {
                return(Shim.Error(ex));
            }
        }
Example #3
0
        public async Task <Response> Init(IChaincodeStub stub)
        {
            _logger.LogInformation("=================== Example Init ===================");

            var functionAndParameters = stub.GetFunctionAndParameters();

            var args = functionAndParameters.Parameters;

            args.AssertCount(4);

            if (!args.TryGet <int>(1, out var aValue) ||
                !args.TryGet <int>(3, out var bValue))
            {
                return(Shim.Error("Expecting integer value for asset holding"));
            }


            if (await stub.PutState("a", aValue) && await stub.PutState("b", bValue))
            {
                return(Shim.Success());
            }

            return(Shim.Error("Error during Chaincode init!"));
        }