code: func (t *SleeperChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
  	function, args := stub.GetFunctionAndParameters()
  	if function == "put" {
  		if len(args) != 3 {
  			return shim.Error("Incorrect number of arguments. Expecting 3")
  		}
  
  		// Make payment of X units from A to B
  		return t.invoke(stub, args)
  	} else if function == "get" {
  		if len(args) != 2 {
  			return shim.Error("Incorrect number of arguments. Expecting 2")
  		}
  
  		// the old "Query" is now implemtned in invoke
  		return t.query(stub, args)
  	}
  
  	return shim.Error("Invalid invoke function name. Expecting \"put\" or \"get\"")
  }
docs: // Invoke sets key/value and sleeps a bit